函数和触发器允许用户向后端服务器插入代码,这样其他用户可以在不知觉的情况下执行这些代码。 因此,两种机制都可以让用户相当隐蔽地给别人设置 "trojan horse(木马)", 唯一的有效防护就是严格控制谁可以定义函数。
除了 SQL 外任何语言写的函数在后端服务器里面都是以数据库服务器守护进程的操作系统权限运行的。 从一个信任的函数内部修改服务器的内部数据结构也是可能的。 因此,除了其他问题外,这样的函数可以绕过任何系统访问控制。 这是用户定义 C 函数的固有问题。