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

如何将Web应用连接至Azure虚拟机上的SQL Server(IaaS)

没问题,我帮你理清楚从Web应用连接Azure VM上部署的SQL Server(IaaS)的关键步骤——其实和PaaS场景的核心区别主要在VM的网络配置和SQL Server本身的设置,一步步来就行:

一、先搞定Azure VM的网络配置

这是最容易踩坑的环节,毕竟IaaS的VM是有独立网络边界的:

  • 优先推荐让你的Web应用和Azure VM处于同一虚拟网络(VNet),或者通过VPN/Express Route打通两者的网络。这种方式用私有IP连接,安全又稳定,不需要开放公网端口。
  • 如果实在需要公网连接(绝对不推荐生产环境用),得在VM的网络安全组(NSG)里添加入站规则:允许1433端口(SQL Server默认端口)的流量,来源设置为你的Web应用的出站IP地址,或者整个Web应用服务的IP范围(避免IP变动导致连接失败)。另外还要检查VM自身的Windows防火墙,同样要开放1433端口的入站权限。
  • 别忘了检查子网级别的NSG规则,有时候子网的规则会覆盖VM的规则,导致流量被拦截。
二、配置SQL Server的远程访问权限

搞定网络后,得确保SQL Server本身允许远程连接:

  • 打开SQL Server配置管理器,找到「SQL Server网络配置」→ 对应实例的「TCP/IP」协议,右键启用它,然后重启SQL Server服务(这步一定要做,不然设置不生效)。
  • 切换到SQL Server的身份验证模式:在SSMS里右键服务器实例→ 属性→ 安全性,选择混合模式(SQL Server和Windows身份验证),重启服务后创建一个带远程访问权限的SQL账号(不要用Windows账号,除非Web应用和VM在同一个域里,不然很难配置)。
  • 如果改了SQL Server的默认端口(不是1433),要在TCP/IP协议的属性里确认端口号,同时NSG和Windows防火墙也要同步开放这个端口。
三、构建正确的连接字符串

格式和PaaS的类似,但服务器地址要换成VM的IP:

  • 同VNet内连接:用VM的私有IP,比如:
    Server=10.0.0.5,1433;Database=YourDBName;User Id=YourSQLAccount;Password=YourPassword;Encrypt=True;TrustServerCertificate=True;
  • 公网连接:用VM的公共IP,比如:
    Server=203.0.113.10,1433;Database=YourDBName;User Id=YourSQLAccount;Password=YourPassword;Encrypt=True;TrustServerCertificate=True;

注意:生产环境不要用TrustServerCertificate=True,建议配置正规的SSL证书,避免中间人攻击。

四、测试连接排障
  • 先在本地用SSMS连接VM上的SQL Server,确认能正常访问,排除SQL Server本身的配置问题。
  • 然后在Web应用里测试:比如在代码里用SqlConnection初始化连接,或者在Azure App Service的配置里添加连接字符串,再通过代码读取测试。如果连接失败,先检查网络通不通(比如用telnet测试端口),再检查SQL账号的权限,最后看连接字符串有没有写错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:52:38