Thread: DBMS_File Equivalent?

DBMS_File Equivalent?

From
Dunc
Date:
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

Re: DBMS_File Equivalent?

From
"Joshua D. Drake"
Date:
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

Attachment

Re: DBMS_File Equivalent?

From
Dunc
Date:
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


Re: DBMS_File Equivalent?

From
"Joshua D. Drake"
Date:
>>
> 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

Attachment

Re: DBMS_File Equivalent?

From
Tom Lane
Date:
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