要隐藏这些源代码:
?使用原生语言环境(C、Perl、Python 等)将函数编写为一个模块并存储到主机的硬盘中。随后在 PostgreSQL 中创建一个抽象的用户定义函数来调用该模块。?考虑在一个表中编写源代码并在需要时动态创建函数。?在集群的另一个数据库中编写您的用户定义函数,该函数将由另一个已授权用户帐户通过 dblink 模块调用。使用 security definer
security definer 使用创建函数的用户所拥有的特权执行函数。因此,用户可以访问在平常状态下不可用的表。
例如,如清单 12 所示,一个包含两个列的表在模式 Postgres 中由超级用户 postgres 创建。普通用户 user1 将使用 security definer 参数调用该函数并根据输入值获得一个值。