9.3 9.4 9.5 9.6 10 11 12 13 14 15
阿里云PostgreSQL 问题报告 纠错本页面

22.6. 函数和触发器安全性

函数、触发器和行级安全策略允许用户将代码插入到后端服务器中,其他用户可能会无意中执行。 因此,这些机制允许用户相对容易地特洛伊木马其他用户。最强大的保护是对谁可以定义对象进行严格控制。 如果这是不可行的,那么编写查询时只引用具有受信任所有者的对象。从search_path中删除任何允许不受信任用户创建对象的模式。

在后端服务器进程中运行的函数带有数据库服务器守护进程的操作系统权限。如果用于函数的编程语言允许非检查的内存访问,它就可能改变服务器的内部数据结构。因此,在很多其他事情中,这些函数可能绕开任何系统访问控制。允许这种访问的函数语言被认为是不可信的,并且PostgreSQL只允许超级用户创建用这些语言编写的函数。