2010-08-20 44 views

回答

6

不使用PL/Perl時。它限制使用require和use,所以你不能導入模塊。但是,您可以安裝PL/Perlu(用於非限制模式),它允許您加載模塊。

plperlu可以被認爲是一種安全風險,但是,因爲它也允許諸如open這樣的文件系統命令。

+3

plperlu可以非常有用,只要想一想使用它時的安全性,以及它是否會影響你的系統,你可能希望遠離它。用plperlu降低安全風險的重要之處在於,要對其中編寫的任何程序進行仔細審查,以確保它沒有做壞事。 – Kuberchaun 2010-08-24 14:25:14

0

出於安全考慮,您不能在plperl下的函數中運行use/require語句,但您可以在plperlu下運行。

如果您想以安全的方式使用模塊,您可以將plperl.on_init = 'require "myperlinit.pl";'添加到postgresql.conf文件中,然後在包含您的用途的數據目錄中創建一個名爲myperlinit.pl的perl腳本。這將需要重新啓動數據庫服務器,並且這些模塊可用於所有功能。

如果您想要嚴格模式打開,您可以將plperl.use_strict = true添加它。

注意:當調用第一個perl函數時,此腳本在每個連接中執行一次,而不是在創建連接時執行。