首页 > 解决方案 > 从 Google Apps 脚本连接到 Google Cloud SQL 上的 SQL Server 数据库时出错:

问题描述

我正在尝试使用 Jdbc.getCloudSqlConnection 通过 Google Apps 脚本连接到 Google Cloud SQL 上的 SQL Server 2017 数据库。我可以使用 SQL Server Management Studio 成功连接到数据库。

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 创建的用户拥有或可以修改这些权限。

标签: sql-servergoogle-apps-scriptjdbcgoogle-cloud-sql

解决方案


推荐阅读