sql-server - 在 G Suite 中使用 JDBC 将 Apps 脚本连接到 SQL Server
问题描述
我正在尝试从 Google Apps Script (Sheets) 建立与 MS SQL Server 的最基本 JDBC 连接,以读取简单数据。我在企业 G Suite 环境中工作,所以就 IP 而言,没有什么是外部的。我在网上没有找到太多关于在 G Suite 环境中执行此操作的信息,其中实际的企业服务器 IP 可能不在需要列入白名单的范围内。
var connectionString = 'jdbc:sqlserver://myServerName:1433/myDatabaseName;';
var conn = Jdbc.getConnection(connectionString,'myUsername', 'myPassword');
我上getConnection
线的错误是:
异常:无法建立数据库连接。检查连接字符串、用户名和密码。
我已经验证我可以在正确的端口上 ping 服务器。但我怀疑这是一个有争议的问题,因为连接请求来自 G Suite 服务器而不是我的机器。
我正在尝试获取 SQL Server 审核权限,以便查看 SQL Server 上任何失败的登录。
最终,我还需要对 Oracle 服务器做同样的事情。我使用 Oracle 凭据和稍有不同的连接字符串运行了相同的测试,导致完全相同的错误。
解决方案
如果您在这种情况下连接到外部数据库、MSSQL (Microsoft SQL) 或 Oracle,则需要在数据库设置中将以下 IP 地址范围列入白名单,以便 Apps Script 的 JDBC 连接器访问它:
64.18.0.0 - 64.18.15.255
64.233.160.0 - 64.233.191.255
66.102.0.0 - 66.102.15.255
66.249.80.0 - 66.249.95.255
72.14.192.0 - 72.14.255.255
74.125.0.0 - 74.125.255.255
173.194.0.0 - 173.194.255.255
207.126.144.0 - 207.126.159.255
209.85.128.0 - 209.85.255.255
216.239.32.0 - 216.239.63.255
不管你有没有 GSuite 企业账户,你要连接的数据库是外部的。
推荐阅读
- sql - 动态 SQL 更改数据库名称
- c# - 如何对消费者隐藏 Xamarin Forms 自定义控件中的属性
- python - 为什么我需要在递归中使用副本(爬楼梯问题)
- c++ - 在 C/C++ 中使用 AVX2 的两个无符号字节向量的内积
- amazon-web-services - ElasticSearch 搜索 pdf 文档的内容
- kubernetes - redis-cluster 重新部署集群通过 kubernetes 失败
- r - R:在ggplotly中悬停时重叠的工具提示
- math - 如何使用 Welford 的在线算法计算更新和删除的值
- reactjs - 到达路由器导航更改 URL 路径但不呈现组件
- javascript - 根据对象不同的值过滤数组