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

公网Web应用通过专用终结点访问Azure SQL Server需专用DNS区域吗?

问题分析

你当前连接失败的核心原因是:给Web应用配置的专用终结点,作用是让外部客户端通过内网访问你的Web应用,而非让Web应用自身的出站流量走VNet内网。你的Web应用现在仍通过公网IP访问SQL Server,而SQL Server已经禁用“允许所有Azure服务”,且仅允许sql子网的服务终结点访问,所以直接被防火墙拦截。

是否必须创建专用DNS区域?

不是必须的,但你需要解决一个关键问题:让Web应用把MY_SERVER.database.windows.net解析到SQL Server的内网IP,而非公网IP。以下是几种低成本替代方案:

方案1:改用Web应用的VNet集成(推荐)

这是最安全且零额外成本的方法:

  • 删除Web应用的专用终结点,开启区域VNet集成,将Web应用关联到app子网
  • 更新SQL Server的防火墙规则,允许来自app子网(或同时允许sql、app子网)的服务终结点访问
  • 保持原连接字符串不变——当Web应用集成到VNet后,Azure会自动在VNet内部将MY_SERVER.database.windows.net解析为SQL Server的内网IP,出站流量直接走VNet内网,无需额外DNS配置

方案2:硬编码SQL Server私有IP(仅适合测试场景)

  • 在VNet内的虚拟机上执行nslookup MY_SERVER.database.windows.net,获取SQL Server的内网私有IP
  • 修改Web应用的连接字符串,将服务器地址替换为该私有IP
  • 连接字符串中添加TrustServerCertificate=True(因为SQL Server的SSL证书绑定公网域名,用IP连接会触发证书验证错误)

注意:此方法会绕过SSL证书验证,存在安全风险;且若SQL Server私有IP变更,连接会直接失效,不适合生产环境

方案3:自定义DNS服务器(成本略高)

  • 在VNet内部部署一台低成本Azure VM作为DNS服务器
  • 在该DNS服务器上添加A记录,将MY_SERVER.database.windows.net指向SQL Server的私有IP
  • 配置VNet的DNS服务器为这台VM的IP,确保Web应用集成到VNet后使用该DNS解析

此方法需要维护VM,会产生少量成本,但比专用DNS区域更灵活

总结

优先选择方案1,既无需额外成本,又能保证访问的安全性和稳定性,完全满足你“仅允许指定Web应用访问SQL Server”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:51:17