【问题标题】:Can't connect to cloud sql instance (sql server) from GCP Dataflow python environment无法从 GCP Dataflow python 环境连接到云 sql 实例(sql server)
【发布时间】:2020-11-05 22:44:12
【问题描述】:

我在 GCP 数据流环境中运行 Python Jupyter Notebook。从那里,我需要连接到同样托管在 GCP Cloud SQL 上的 SQL 服务器数据库。 Dataflow 环境和 Cloud SQL 数据库属于同一个项目,并且数据库与 Dataflow 环境位于同一区域。在笔记本中我导入pymssql 并尝试连接:

import pymssql
conn = pymssql.connect(private_IP_address,  'sqlserver', my_password, my_database, port=1433)

然后我从数据库日志中得到这个 error_log:

{
textPayload: "
2020-11-05 22:32:11.39 Logon       Login failed for user '0b6ac33c6f3ffac\0b6ac33c6f3ffac$'. Reason: Token-based server access validation failed with an infrastructure error. Login lacks connect endpoint permission. [CLIENT: 127.0.0.1]
"
insertId: "s=78a0260e8570497095a8a31a7c378bb3;i=1f23ae;b=0539ace45f6f4b56b03c745b0479107b;m=10a6f7f8e7e;t=5b363aac03490;x=9030d75bb0dadd2-0@a1"
resource: {2}
timestamp: "2020-11-05T22:32:11.410576Z"
severity: "INFO"
labels: {23}
logName: "projects/shapiro-metals/logs/cloudsql.googleapis.com%2Fsqlserver.err"
receiveTimestamp: "2020-11-05T22:32:12.582961041Z"
}

我一直在四处寻找,但找不到任何关于我所缺少的确切内容的简单解释;希望有人能帮忙?

【问题讨论】:

  • 它们是否都在同一个 VPC 网络中?如果是,您的端口是否在 VPC 防火墙规则中被允许?然后,您是否在端口 1433 上运行或尝试使用不同的端口并尝试使用 Cloud SQL 的公共 IP 地址。如果以上都做了,你还会遇到同样的错误吗?
  • 是的,它们在同一个 VPC 网络中。默认项目网络。我添加了授予权限的规则,但无论我做什么,它似乎都不起作用。我也不懂一些命名法:target 和 source 是什么?源是数据库实例,目标是调用代码吗?我也尝试使用公共 IP 地址,并将数据流 IP 地址添加到云 SQL 实例的允许地址中,然后在 SQL 实例的日志中得到相同的错误。
  • 另外有趣的是,如果我在 Dataflow 环境中的终端中输入 gcloud sql connect shapiro-sql --user=sqlserver,我会收到此错误:ERROR: (gcloud.sql.connect) HTTPError 403: The client is not authorized to make this request. 但是当我在笔记本电脑终端上发出相同的命令时,它要求我输入密码,当我提供密码时它会连接。
  • 更新;从云 shell 发出此命令后:gcloud projects add-iam-policy-binding shapiro-metals --member serviceAccount:100482624970-compute@developer.gserviceaccount.com --role roles/editor 我现在可以成功运行gcloud sql connect shapiro-sql --user=sqlserver 但 python 接口仍然无法工作

标签: python google-cloud-dataflow google-cloud-sql


【解决方案1】:

更改为公共 IP 地址和其他故障排除后遇到相同的错误,此问题与此 public tracker 相同,Google Cloud SQL 工程团队正在努力解决此问题。

您可以为公共问题跟踪器功能请求加注星标,并在您也受到影响的线程中添加评论,以确保您会收到有关它的更新。

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 2020-11-06
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 2015-06-03
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多