使用 IAM 用户从 Azure Data Studio 连接到云 SQL

Connecting to Cloud SQL from Azure Data Studio using an IAM user

按照说明 here,我在使用我生成的令牌从 Azure Data Studio 连接到数据库时遇到问题。它成功连接到数据库,但是一旦我想 运行 一个简单的查询(我已经在那里给了我的用户读取权限),它就会给我这个连接错误,我需要再次使用令牌连接并且一段时间后再次随机断开连接:

FATAL: Cloud SQL IAM user authentication failed for user "user@company.com" FATAL: pg_hba.conf rejects connection for host "...", user "user@company.com", database "db-name", SSL off

我做了一些搜索,发现还有一种使用 Cloud SQL Auth 代理通过 IAM 数据库身份验证登录的方法,但文档仅限于 Postgress 命令行,而不是像 Azure 这样的 GUI 数据库工具数据工作室。在这种情况下,如果您想使用 GUI 工具连接,谁能解释一下需要什么?

关于更改 pg_hba.conf 文件,因为我使用云 SQL 实例,所以我不确定如何关闭 sslmode云实例。我检查了我的实例的连接选项卡,那里没有检查 SSL encryption(不确定是否相同),我将 sslmode 更改为在我的 Azure Data Studio 上禁用连接,但它不允许我在此更改后连接:

FATAL: pg_hba.conf rejects connection for host "*.*.*.*", user "user@company.com", database "database", SSL off

有人帮忙吗?

我找到了答案:我们可以使用 IAM 数据库身份验证和云 SQL 身份验证代理 进行连接。从 GUI DB 工具(我的是 Azure Data Studio)完成之后的唯一步骤是连接到 IP(在我的例子中是 127.0.0.1)云 SQL Auth 代理侦听(127.0.0.1 是默认值)启动 Cloud SQL 身份验证代理后使用:

./cloud_sql_proxy -instances=<GCPproject:Region:DBname>=tcp:127.0.0.1:5432