dblink_connect_u
Name
dblink_connect_u -- 危险的打开一个到远程数据库的持久连接
Synopsis
dblink_connect_u(text connstr) returns text
dblink_connect_u(text connname, text connstr) returns text
描述
dblink_connect_u()
与dblink_connect()
是相同的, 除了它将允许非超级用户使用任何身份验证方法进行连接。
如果远程服务器选择一个不涉及密码的身份验证方法,然后模拟并且产生权限的随后升级, 因为该会话将出现于用户,正如本地PostgreSQL服务器运行的那个。 同时,即使远程服务器确实需要密码,从服务器环境提供密码是可能的,比如 ~/.pgpass
文件从属于服务器的用户。这不仅仅打开模拟风险,而且 可能将密码暴露给不信任的远程服务器。 因此,dblink_connect_u()
初始安装从PUBLIC
撤销的所有权限。 使得它不可请求即付只有超级用户可以。 在一些情况下可以为dblink_connect_u()
指定可以信赖的用户适当授予 EXECUTE
权限,但这应该仔细的做。 推荐任何从属于服务器的用户的~/.pgpass
文件不包含 指定通配符主机名的任何记录。
更多详情请参阅dblink_connect()
。