1

我(user1)有一个连接到 Cloud SQL 实例的 Apps 脚本,如下所示:

var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://blah:instance1/foo")

它就像一个魅力。我正在尝试将此脚本作为库共享,并可能在未来将其货币化。

当我以其他用户 (user2) 身份登录并将其添加为库时,当库运行尝试建立连接的函数时,它会失败:

Failed to establish a database connection. Check connection string, username and password.

因此,即使执行连接的代码来自 user1 拥有的库,连接似乎也来自 user2。真的吗?除了将 user2 作为编辑器添加到我的 Cloud SQL 实例之外,还有什么方法可以完成这项工作?

4

1 回答 1

1

是的,这是预期的行为。由不同用户拥有的库并不重要。cloud-sql jdbc 连接器仅在有效用户可以编辑数据库时才授权连接。

为了解决这个问题,你已经把这个“库”变成了一个 web 应用程序,以你的身份运行并分享给任何人,甚至是匿名的。它通过 HTTP 参数(GET 或 POST)接受对数据库的查询和命令。这个 webapp 将使用ContentService以任何可用的文本格式返回结果。我想最简单的一个是 JSON,因为您可以在 Apps Script 上使用常规的 js 对象,然后就JSON.stringify可以JSON.parse进行通信。

为了让事情变得更容易,您可以创建一个库来访问此 web 应用程序,抽象UrlFetch您在第一个脚本中的调用和参数,允许其他脚本使用简单的“本机”插件。

于 2013-06-16T20:52:20.263 回答