支援的版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

21.6. 函數安全性 #

函數、觸發器和資料列層級安全性原則允許使用者將程式碼插入後端伺服器,而其他使用者可能會在無意中執行該程式碼。因此,這些機制允許使用者相對容易地 特洛伊木馬 其他使用者。最強大的保護是嚴格控制誰可以定義物件。如果這不可行,請編寫僅引用具有受信任擁有者的物件的查詢。從 search_path 中移除允許不受信任的使用者建立物件的任何結構描述。

函數在後端伺服器程序內執行,並具有資料庫伺服器守護程式的作業系統權限。如果用於函數的程式語言允許未檢查的記憶體存取,則可能會變更伺服器的內部資料結構。因此,除其他事項外,這些函數可以規避任何系統存取控制。允許此類存取的函數語言被視為 不受信任,並且 PostgreSQL 僅允許超級使用者建立以這些語言編寫的函數。

提交更正

如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步說明的內容,請使用 此表單 回報文件問題。