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

Azure App Service连接Azure SQL VM时遇访问拒绝错误求助

解决Azure App Service连接Azure SQL VM的网络访问问题

以下是逐步排查和解决的步骤:

1. 检查SQL VM的网络安全组(NSG)入站规则

  • 登录Azure门户,找到SQL VM对应的NSG
  • 添加或修改入站规则,允许TCP协议、目标端口为SQL Server使用的端口(默认1433,自定义端口请替换),源选择App Service的出站IP地址列表(可在App Service的「属性」页面查看)
  • 若后续配置VNet集成,可将源改为SQL VM所在VNet的地址段,提升安全性

2. 确认SQL Server的远程连接配置

  • 登录到Azure SQL VM的操作系统,打开「SQL Server配置管理器」
  • 展开「SQL Server网络配置」,找到对应实例的「协议」,确保TCP/IP协议已启用
  • 双击TCP/IP协议,切换到「IP地址」标签,拉到最底部的「IPAll」部分,确认「TCP端口」与连接字符串中的端口一致
  • 重启SQL Server服务(在「SQL Server服务」面板中操作)使配置生效

3. 配置App Service的网络连通性

  • 若SQL VM部署在Azure VNet或企业内网中,建议为App Service配置VNet集成:
    • 进入App Service的「网络」->「VNet集成」页面
    • 选择SQL VM所在的VNet(需同区域或已配置VNet对等连接),完成集成后App Service可通过内网IP访问SQL VM
  • 检查App Service的「网络」->「出站流量限制」,确保没有阻止到SQL VM IP和端口的规则

4. 验证连接字符串正确性

  • 在App Service的「配置」->「连接字符串」中,确认格式符合要求:
    Server=tcp:<SQL_VM_IP>,<Port>;Initial Catalog=<数据库名称>;User ID=<SQL账号>;Password=<密码>;Encrypt=True;TrustServerCertificate=False;
    
    • 若已配置VNet集成,将<SQL_VM_IP>替换为SQL VM的内网IP
    • 确认账号、密码、数据库名称与本地SSMS使用的完全一致,无拼写错误

5. 检查SQL VM的本地防火墙规则

  • 在SQL VM的操作系统中,打开「Windows Defender防火墙」->「高级设置」
  • 添加入站规则,允许SQL Server端口(1433或自定义端口)的TCP连接,源范围设置为App Service的出站IP或VNet地址段

6. 测试端口连通性

  • 进入App Service的「开发工具」->「控制台」,执行以下命令测试端口连通性:
    Test-NetConnection <SQL_VM_IP> -Port <Port>
    
    • 若返回「TcpTestSucceeded: True」,说明网络连通;若失败,回到NSG和本地防火墙规则排查
  • 若网络连通但仍报错,重点检查SQL Server的登录权限

7. 确认SQL Server登录权限

  • 用本地SSMS连接SQL Server,找到对应的登录账号:
    • 右键账号选择「属性」,在「服务器角色」中确认拥有必要权限(如db_owner或自定义权限)
    • 切换到「用户映射」标签,确认已映射到目标数据库并分配了权限
  • 检查SQL Server的「服务器属性」->「安全性」,确认已启用「SQL Server和Windows身份验证模式」(若使用SQL账号登录)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:50:37