sql-server - 从 Google Apps 脚本连接到 Google Cloud SQL 上的 SQL Server 数据库时出错:
问题描述
我正在尝试使用 Jdbc.getCloudSqlConnection 通过 Google Apps 脚本连接到 Google Cloud SQL 上的 SQL Server 2017 数据库。我可以使用 SQL Server Management Studio 成功连接到数据库。
- 为公共 IP 配置与此实例的连接,无需 SSL
- 我已按照本文中的说明将 IP 地址列入白名单
- 下面列出了来自 Apps Script 函数的相关连接代码
7 var connectionName = '<instance connection name>';
8 var user = '<user>';
9 var userPwd = '<password>';
10 var db = '<database name>';
11
12 function readFromTable_getCloudSqlConnection() {
13
14 var dbUrl = 'jdbc:google:mysql://' + connectionName + '/' + db;
15 var conn = Jdbc.getCloudSqlConnection(dbUrl, user, userPwd);
16
17 var start = new Date();
18 var stmt = conn.createStatement();
19 stmt.setMaxRows(1000);
20 var results = stmt.executeQuery('SELECT * FROM peeps');
Apps 脚本日志中的错误是:
异常:无法建立数据库连接。检查连接字符串、用户名和密码。在 readFromTable_getCloudSqlConnection(代码:15:19)
来自 Google Cloud SQL 日志的 SQL Server 日志中的错误
错误:18456,严重性:14,状态:148。
和
用户“a-280598101372-\a-280598101372-$”登录失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。登录缺少连接端点权限。[客户:127.0.0.1]“
这似乎是 SQL Server 数据库的权限问题。我尝试搜索该 SQL Server 错误消息,并且大多数帖子都提到向用户和/或角色授予适当的权限,我不相信通过 Cloud SQL 创建的用户拥有或可以修改这些权限。
解决方案
推荐阅读
- python - 读取多个文件,但找出我当前在哪个文件上
- r - 根据 r 中的某些条件使用 dplyr 添加特定的新行
- dependencies - 在 sbt 中查找依赖项 JAR 列表
- javascript - 循环遍历父 DIV 并选择某些子 DIV
- php - 在ajax中发布ID
- linux - 如何从 Shell 脚本的 HH:MM 格式的参数中捕获值
- perl - 将哈希转换为 json 格式文件 [Perl]
- python-3.x - Pandas-增量(年,月)多索引和年和月列
- android - 我在哪里可以找到有关创建问题弹出窗口的信息?
- email - 我可以将文件 (PDF) 附加到 customer.io REST API 吗?