You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Azure Databricks标准层连接私有终结点Azure SQL数据库失败求助

问题分析与解决步骤

核心问题:Databricks直接通过JDBC连接私有端点部署的Azure SQL时,请求走了公共网络,被SQL的"拒绝公共访问"策略拦截;而ADF通过托管IR能成功,是因为托管IR处于可访问私有端点的网络环境中。

以下是针对性的排查和解决步骤:

1. 确认Databricks的网络部署模式

  • 只有**虚拟网络注入(VNet Injection)**模式下的Databricks集群,才能直接访问VNet内的私有端点资源。如果你的Databricks是默认托管网络,集群不在自定义VNet中,无法直接连通私有端点,需要切换到VNet注入模式。
  • 若已使用VNet注入,确认集群所在子网与Azure SQL私有端点所在VNet是否连通(同VNet或已配置VNet对等互联)。

2. 验证私有端点的DNS解析正确性

登录Databricks集群的驱动节点,执行以下命令检查DNS解析结果:

nslookup <你的SQL服务器名称>.database.windows.net
  • 若返回的是公共IP,说明DNS配置异常:
    • 需在SQL私有端点所在VNet中创建并关联专用DNS区域privatelink.database.windows.net,确保该区域能将SQL服务器FQDN解析为私有端点的内网IP。
    • 确保Databricks集群所在子网使用的DNS服务器(Azure默认DNS或自定义DNS)能正确解析该专用区域的记录。

3. 检查JDBC连接字符串配置

确保JDBC串使用SQL服务器的完整FQDN,不要手动指定IP或强制公共网络连接,示例正确连接串:

jdbc_url = "jdbc:sqlserver://<server-name>.database.windows.net:1433;databaseName=<db-name>;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
  • 若之前配置过Azure SQL的服务终结点,建议禁用,避免与私有端点的网络规则冲突。

4. 排查网络安全组(NSG)与路由表

  • 检查SQL私有端点所在子网的NSG,是否允许来自Databricks集群子网的1433端口入站流量(若使用SQL的非默认端口,需对应调整)。
  • 检查Databricks集群子网的路由表,确认没有将前往SQL服务器的流量转发到公共网络(比如默认路由是否指向VNet内部,而非公共互联网网关)。

5. 补充:ADF托管IR的成功逻辑参考

ADF托管IR若部署在与SQL私有端点同VNet的托管虚拟网络中,天然具备私有端点的访问权限;而Databricks直接连接时,必须确保自身集群处于可访问私有端点的网络环境中,这是两者的核心差异。

内容的提问来源于stack exchange,提问作者Dalvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:15:39