# 22.6.功能安全

函数、触发器和行级安全策略允许用户将其他用户可能无意中执行的代码插入后端服务器。因此,这些机制允许用户相对轻松地“木马”其他人。最强大的保护措施是严格控制谁可以定义对象。在不可行的情况下,编写只引用具有可信所有者的对象的查询。从搜索路径公共模式以及允许不受信任的用户创建对象的任何其他模式。

函数在后台服务器进程内运行,并具有数据库服务器守护程序的操作系统权限。如果函数使用的编程语言允许未经检查的内存访问,则可以更改服务器的内部数据结构。因此,在许多其他事情中,这样的功能可以绕过任何系统访问控制。允许这种访问的函数语言被认为是“不受信任的”,PostgreSQL只允许超级用户创建用这些语言编写的函数。