我正在尝试使用 dblink 连接到 Google Cloud SQL 实例,这在连接字符串中设置用户名和密码时效果很好,但我想将我的客户端凭据保存在 SQL 实例中,这样就不需要在连接中显式输入我的密码。
将使用的.pgpass文件是属于运行本地数据库的操作系统用户的文件(在大多数情况下为"~/postgres/.pgpass"(。 然后出于安全原因,它仅在您是本地超级用户时才有效。 你能满足这些标准吗?
但我想将我的客户端凭据保存在 SQL 实例中
"SQL 实例"是什么意思? 我不认为 .pgpass 会算作在 SQL 实例中。
另一种解决方案是创建带有"postgres_fdw"的外部服务器。 这似乎没有记录(编辑:它记录在这里,但使用dblink_fdw而不是postgresql_fdw(,但您可以将"postgres_fdw"外部服务器的名称(用单引号引起来(传递给 dblink 函数作为连接字符串。 然后,它将从该服务器和用户的用户映射中提取要使用的密码。 我认为用户映射算作"SQL实例"内部。