Re: plperl and the dynamic loader
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Ragnar Hakonarson" <rhakonarson@conquestnetwork.com>
Cc: pgsql-hackers@postgresql.org
Date: 2000-05-21T17:34:30Z
Lists: pgsql-hackers
"Ragnar Hakonarson" <rhakonarson@conquestnetwork.com> writes: > Does plperl not load libraries dynamically? > I am trying to import a .pm module from plperl and I get the following error > message: > creation of function failed : require trapped by operation mask at (eval 28) line 2. Makes sense to me. plperl runs in a "safe" Perl interpreter, and if you could load arbitrary perl code then the safety would be bypassed. The reason for this restriction is that whatever the Perl code does will be done with the permissions of the Postgres user (since it's running in a Postgres-owned backend). It'd be a huge security hole if users could invoke arbitrary Perl code in that environment. So, we only permit "safe" operations. If you like living dangerously you could weaken the protection to suit your taste --- read about the Safe and Opcode perl modules, and then twiddle the plperl source code to select whatever operator mask you feel comfortable with. regards, tom lane