带VNET注入的Azure Databricks工作区无法连接本地SQL Server
问题:Azure Databricks Catalog无法连接本地SQL Server
环境配置
我搭建了一个Azure Databricks工作区,包含以下配置:
- VNet注入
- 安全集群连接(Secure Cluster Connectivity)
- 前后端专用链接(Front & Backend Private Link)
目标是实现Databricks到本地SQL Server的连接。注入Databricks的VNet已与通过Azure VPN网关连接本地网络的中心VNet完成对等互联,同时在该VNet上配置了DNS转发规则集。
已完成的连通性验证
通过计算集群执行以下命令,确认了集群与本地SQL Server的连通性:
1. Ping测试
ping sql-server.company.local PING sql-server.company.local (10.0.80.201) 56(84) bytes of data. 64 bytes from 10.10.80.201 (10.0.80.201): icmp_seq=1 ttl=126 time=28.9 ms 64 bytes from 10.10.80.201 (10.0.80.201): icmp_seq=2 ttl=126 time=27.4 ms 64 bytes from 10.10.80.201 (10.0.80.201): icmp_seq=3 ttl=126 time=27.4 ms 64 bytes from 10.10.80.201 (10.0.80.201): icmp_seq=4 ttl=126 time=27.1 ms 64 bytes from 10.10.80.201 (10.0.80.201): icmp_seq=5 ttl=126 time=27.9 ms
2. 端口连通性测试
nc -zv sql-server.company.local 1433 Connection to sql-server.company.local (10.0.80.201) 1433 port [tcp/ms-sql-s] succeeded!
当前问题
计算集群已验证能正常连接本地SQL Server,但通过Databricks Catalog添加SQL Server连接时,测试连接失败,错误信息如下:
解决方案建议
1. 指定已验证的计算集群
Databricks Catalog创建连接时默认可能使用无服务器计算资源,而非你已验证的专用集群。在连接配置界面的「Compute」选项中,选择之前确认能连通本地SQL Server的集群,再测试连接。
2. 验证DNS解析一致性
虽然专用集群能解析sql-server.company.local,但Catalog使用的计算环境(如无服务器资源)可能未应用相同的DNS转发规则。可以尝试直接使用SQL Server的IP地址10.0.80.201测试连接,排除DNS解析问题。
3. 核对认证配置
确保Catalog连接的认证信息与集群测试时一致:
- 若用Windows认证,确认集群已加入域或配置了正确的Kerberos认证;
- 若用SQL Server认证,检查用户名、密码是否正确,且该账号拥有目标数据库的访问权限。
4. 检查NSG流量规则
确认VNet及中心VNet的网络安全组(NSG)规则,允许Catalog使用的计算资源(含无服务器子网)出站访问10.0.80.201:1433端口。
5. 查看详细错误日志
在Databricks工作区的「工作区日志」或对应集群的日志中,查找Catalog连接失败的具体错误代码(如超时、认证失败、DNS解析失败等),定位问题根源。
内容的提问来源于stack exchange,提问作者A B
相关产品推荐
相关产品推荐

