0
我正在創建一個使用plpgsql調用.bat文件的過程。這個.bat文件處理文件和目錄(包括mkdir,rmdir ...),但是這些命令沒有被執行。我在讀plpgsql只是用於數據操作 - 所以我假設這是問題。PostgreSQL:mkdir與plpgsql
我該如何解決這個問題?我可以設置一些參數來消除這個限制,使用一種新的語言,或者什麼?
我正在創建一個使用plpgsql調用.bat文件的過程。這個.bat文件處理文件和目錄(包括mkdir,rmdir ...),但是這些命令沒有被執行。我在讀plpgsql只是用於數據操作 - 所以我假設這是問題。PostgreSQL:mkdir與plpgsql
我該如何解決這個問題?我可以設置一些參數來消除這個限制,使用一種新的語言,或者什麼?
您應該使用不可信的語言編寫函數,例如PL/PythonU。
信任的語言是專爲普通數據庫用戶(那些沒有超級用戶權限),並允許他們安全地創建函數和觸發器過程。由於PL功能是在數據庫服務器內部執行的,因此TRUSTED標誌只應用於不允許訪問數據庫服務器內部或文件系統的語言。 PL/pgSQL,PL/Tcl和PL/Perl語言被認爲是可信的; PL/TclU,PL/PerlU和PL/PythonU語言旨在提供無限的功能,不應被標記爲可信。
感謝,有趣的觀點...然而,既然我打電話給一個.bat文件,你的答案仍然適用? '安全'方面在這個腳本的手中 - 不是plpgsql? – Zeruno
在plpgsql函數中直接訪問文件系統是不可能的,你不能從它運行一個bat文件。你需要一個不可信的語言。 – klin
@klin:當OP發佈此問題[3小時前](http://stackoverflow.com/questions/41652664/how-to-set-postgresql-to-save-temp-files)時,他們提到他們是通過'COPY FROM'將其關閉。 –