17.5. 函數和觸發器

函數和觸發器允許用戶向後端服務器插入代碼,這樣其他用戶可以在不知覺的情況下執行這些代碼。 因此,兩種機制都可以讓用戶相當隱蔽地給別人設置 "trojan horse(木馬)", 唯一的有效防護就是嚴格控制誰可以定義函數。

除了 SQL 外任何語言寫的函數在後端服務器裡面都是以數據庫服務器守護進程的操作系統權限運行的。 從一個信任的函數內部修改服務器的內部數據結構也是可能的。 因此,除了其他問題外,這樣的函數可以繞過任何系統訪問控制。 這是用戶定義 C 函數的固有問題。