尝试连接到 Cloud SQL 实例时出现 403

Posted

技术标签:

【中文标题】尝试连接到 Cloud SQL 实例时出现 403【英文标题】:Getting 403 when trying to connect to Cloud SQL instance 【发布时间】:2021-11-30 13:52:42 【问题描述】:

我正在尝试创建从 Data Fusion 到 Cloud SQL Postgres 的连接。

我遇到了连接错误,不知道如何解决。 这是我到目前为止所做的:

启用 Datacloud API 的 Data Fusion 实例是使用私有 IP 集群创建的。 Cloud SQL 的所有权限均授予 Data Fusion 服务帐号(SQL 客户端、-manager、管理员)。 在 Cloud SQL 实例中,启用了专用网络。

当我尝试创建与我们的 Cloud SQL (Postgres) 实例的连接时,会出现此错误:

无法通过连接字符串创建与数据库的连接:jdbc:postgresql://google/"省略的项目 ID"&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=true:5432/"省略的表名"和参数:user="省略"。

错误:GoogleJsonResponseException: 403 Forbidden "code" : 403, "errors" : [ "domain" : "global", "message" : "客户端无权发出此请求。", "reason" : "notAuthorized" ], "message" : "客户端无权发出此请求。" 。

确保指定正确的连接属性。

【问题讨论】:

数据融合服务账号是否有读数据库/表的权限? 谢谢这个问题:) 是的...问题出在连接上,而不是在阅读表中... 您的完整连接字符串是什么样的?您是否指定cloudSqlInstance?见github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory/…。 【参考方案1】:

403 表示您没有权限。确保您的服务使用的任何服务帐户在实例所在的项目中都具有“Cloud SQL 客户端”角色,并且启用了 Cloud SQL Admin API(在服务帐户所属的项目中)。

【讨论】:

【参考方案2】:

使用私有数据融合实例连接云 sql 时,您需要设置cloud sql Auth proxy。至少我们是这样管理的。

【讨论】:

以上是关于尝试连接到 Cloud SQL 实例时出现 403的主要内容,如果未能解决你的问题,请参考以下文章

尝试将 android 连接到 sql server 时出现 NullPointerException

在 C# 中连接到 SQL Server 时出现问题

禁止访问!尝试运行 php 文件时出现错误 403

从 Cloud Tasks 触发 HTTP Cloud Function 时出现 PERMISSION_DENIED 403 错误

111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误

在连接SQL Server服务器时出现这样的错误提示。求高手帮忙,如能解决,万分感谢。