dblink_connect_u — 不安全地打开到远程数据库的持久连接
dblink_connect_u(text connstr) 返回 text dblink_connect_u(text connname, text connstr) 返回 text
dblink_connect_u() 与 dblink_connect() 相同,不同之处在于它允许非超级用户使用任意认证方法进行连接。
如果远程服务器选择的认证方法不涉及密码,则可能发生身份冒充以及随之而来的权限提升,因为该会话看起来会像是由运行本地 PostgreSQL 服务器的那个用户发起的。 此外,即使远程服务器确实要求密码,密码也有可能来自服务器环境,例如属于服务器用户的 ~/.pgpass 文件。这不仅带来身份冒充的风险,也可能将密码暴露给不可信的远程服务器。 因此,dblink_connect_u() 在初始安装时会撤销 PUBLIC 的全部权限,从而除了超级用户之外无法调用它。 在某些情况下,可能适合向被认为可信的特定用户授予 EXECUTE 权限,但必须谨慎操作。还建议服务器用户的任何 ~/.pgpass 文件不要包含指定通配主机名的记录。
更多细节请参见 dblink_connect()。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。