使用 .pgpass 从远程服务器 dblink 到 Google Cloud SQL 实例
dblink from remote server into a Google Cloud SQL instance using .pgpass
我正在尝试使用 dblink 连接到 Google Cloud SQL 实例,这在连接字符串中设置我的用户名和密码时效果很好,但我想保存我的SQL 实例中的客户端凭据不需要在连接中显式输入我的密码。
将使用的 .pgpass 文件属于 OS 用户,即 运行 本地数据库('~/postgres/.pgpass',在大多数情况下)。然后出于安全原因,它仅在您是本地超级用户时才有效。你能满足这些条件吗?
but I would like to save my Client credentials in the SQL instance
"SQL instance"是什么意思?我认为 .pgpass 不会算作在 SQL 实例中。
另一种解决方案是使用 "postgres_fdw" 创建一个外部服务器。这似乎没有记录(编辑:记录在案 here,但使用 dblink_fdw 而不是 postgresql_fdw),但您可以传递 "postgres_fdw" 外部服务器的名称(在单引号中)到 dblink 函数作为连接字符串。然后它将从该服务器和用户的用户映射中提取要使用的密码。我认为 USER MAPPING 算作 "SQL instance".
内
我正在尝试使用 dblink 连接到 Google Cloud SQL 实例,这在连接字符串中设置我的用户名和密码时效果很好,但我想保存我的SQL 实例中的客户端凭据不需要在连接中显式输入我的密码。
将使用的 .pgpass 文件属于 OS 用户,即 运行 本地数据库('~/postgres/.pgpass',在大多数情况下)。然后出于安全原因,它仅在您是本地超级用户时才有效。你能满足这些条件吗?
but I would like to save my Client credentials in the SQL instance
"SQL instance"是什么意思?我认为 .pgpass 不会算作在 SQL 实例中。
另一种解决方案是使用 "postgres_fdw" 创建一个外部服务器。这似乎没有记录(编辑:记录在案 here,但使用 dblink_fdw 而不是 postgresql_fdw),但您可以传递 "postgres_fdw" 外部服务器的名称(在单引号中)到 dblink 函数作为连接字符串。然后它将从该服务器和用户的用户映射中提取要使用的密码。我认为 USER MAPPING 算作 "SQL instance".
内