21.6. 功能安全性

功能,触发器和行级安全策略允许用户将代码插入其他用户可能无意执行的后端服务器。因此,这些机制允许用户相对轻松地“盗用木马”。最强的保护是严格控制谁可以定义对象。在不可行的地方,编写查询仅引用具有受信任所有者的对象。从search_path中删除公共模式以及允许不受信任的用户创建对象的任何其他模式。

在数据库服务器守护程序的 os 许可下,函数在后端服务器进程内部运行。如果用于该功能的编程语言允许未经检查的内存访问,则可以更改服务器的内部数据结构。因此,除其他外,此类功能可以规避任何系统访问控制。允许这种访问的函数语言被认为是“不受信任的”,而 PostgreSQL 仅允许超级用户创建以那些语言编写的函数。