DBMS_File Equivalent?

Started by Duncover 21 years ago5 messagesgeneral
Jump to latest
#1Dunc
postgresql@dunc-it.com

Can a trigger, written in plperl, write to the OS when it fires? I want
to write a trigger, in plperl, that builds an RSS feed file with each
row that gets added to one of my tables. My database (8 rc 3, on Redhat
9) seems to choke (terminated on signal 11) each time I try to write to
the OS - I would imagine because it's a major security threat to have
the DB blindly writing to the filesystem. I guess what I really need is
something like dbms_file in Oracle, where one predefines where the DB is
allowed to read and write files. Can this be done with Postgres?

Dunc

#2Joshua D. Drake
jd@commandprompt.com
In reply to: Dunc (#1)
Re: DBMS_File Equivalent?

Dunc wrote:

Can a trigger, written in plperl, write to the OS when it fires? I want
to write a trigger, in plperl, that builds an RSS feed file with each
row that gets added to one of my tables. My database (8 rc 3, on Redhat
9) seems to choke (terminated on signal 11) each time I try to write to
the OS - I would imagine because it's a major security threat to have
the DB blindly writing to the filesystem. I guess what I really need is
something like dbms_file in Oracle, where one predefines where the DB is
allowed to read and write files. Can this be done with Postgres?

You can do it with plperlu but not plperl. The procedure will be fired
as your postgresql user (the owner of the actual catalog) so you want to
make sure that where the procedure is trying to write can be accessed by
that user.

Sincerely,

Joshua D. Drake

Dunc

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

-- 
Command Prompt, Inc., home of PostgreSQL Replication, and plPHP.
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
Mammoth PostgreSQL Replicator. Integrated Replication for PostgreSQL
#3Dunc
postgresql@dunc-it.com
In reply to: Dunc (#1)
Re: DBMS_File Equivalent?

I wrote:

Can a trigger, written in plperl, write to the OS when it fires? I
want to write a trigger, in plperl, that builds an RSS feed file with
each row that gets added to one of my tables. My database (8 rc 3, on
Redhat 9) seems to choke (terminated on signal 11) each time I try to
write to the OS - I would imagine because it's a major security threat
to have the DB blindly writing to the filesystem. I guess what I
really need is something like dbms_file in Oracle, where one
predefines where the DB is allowed to read and write files. Can this
be done with Postgres?

Dunc

In thinking about this I'm wondering if I'm making this harder then it
needs to be. If I could write a function that builds, and returns the
RSS file that would accomplish what I want - assuming that I could call
the function from a webpage. Can Postgres functions be called from a
URL, similar to how PL/SQL files can be in Oracle?

Dunc

#4Joshua D. Drake
jd@commandprompt.com
In reply to: Dunc (#3)
Re: DBMS_File Equivalent?

In thinking about this I'm wondering if I'm making this harder then it
needs to be. If I could write a function that builds, and returns the
RSS file that would accomplish what I want - assuming that I could call
the function from a webpage. Can Postgres functions be called from a
URL, similar to how PL/SQL files can be in Oracle?

Not without a wrapper to the connection. If in perl... just have a cgi
call it.

Sincerley,

Joshua D. Drake

Dunc

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

-- 
Command Prompt, Inc., home of PostgreSQL Replication, and plPHP.
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
Mammoth PostgreSQL Replicator. Integrated Replication for PostgreSQL
#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dunc (#1)
Re: DBMS_File Equivalent?

Dunc <postgresql@dunc-it.com> writes:

Can a trigger, written in plperl, write to the OS when it fires?

No, but a plperlu trigger can.

My database (8 rc 3, on Redhat
9) seems to choke (terminated on signal 11) each time I try to write to
the OS - I would imagine because it's a major security threat to have
the DB blindly writing to the filesystem.

It is a security hole, but sig 11 is not the expected response :-(.
Can you provide a debugger backtrace from the crash, or even better a
complete test case? What Perl version are you using?

regards, tom lane