【问题标题】:Cannot connect to Azure SQL database, even with whitelisted IP即使使用列入白名单的 IP,也无法连接到 Azure SQL 数据库
【发布时间】:2012-07-23 17:45:14
【问题描述】:

我目前无法从私人数据中心的单独远程独立专用盒子连接到我的 Azure SQL 数据库。

我有一个 Azure SQL 数据库,我在其中管理可以连接到该数据库的 IP 地址列表。到目前为止,这一直很有效。我最近在一个私有数据中心设置了一个新的专用框,它需要每隔 5 秒定期查询 Azure SQL 数据库,给予或接受。

问题是,这个专用盒子无法与 Azure SQL 数据库建立连接,尽管可以连接到其他远程 FTP 服务器、MySQL 服务器等。Azure SQL 数据库确实有专用盒子的 IP 地址允许的连接列表。此外,我暂时在 Azure SQL 数据库上开放了大量允许的 IP 地址(0.0.0.0 -> 255.255.255.255),看看是否可能是由于 IP 阻塞导致无法连接。

是否有人对可能导致此问题的原因以及如何开始更好地调试这种情况有任何建议或想法?

澄清一下:我可以在我的办公室和其他地方使用具有个人 IP 地址的笔记本电脑连接到 Azure SQL 数据库,只要它们已被添加到数据库白名单中;我可以从专用盒子向外连接到远程 FTP 和 MySQL 服务器;我试图在 Azure SQL 上打开大量允许的 IP 地址,但没有成功。

编辑

C:\Users\graphite.rack.ID17157>osql -S v7o06blktw.database.windows.net -U XXXXXXX@v7o06blktw -P XXXXXXX  
[SQL Server Native Client 11.0] Named Pipes Provider: Could not open a
connection to SQL Server [53].  
[SQL Server Native Client 11.0] Login timeout expired  
[SQL Server Native Client 11.0] A network-related or instance-specific error
has occurred while establishing a connection to SQL Server. Server is not
found or not accessible. Check if instance name is correct and if SQL Server
is configured to allow remote connections. For more information see SQL Server
Books Online.

【问题讨论】:

  • 所以换句话说,问题通常是从专用框连接到 SQL Azure,不是 IP 阻塞?您是否能够非常简单地连接,例如使用osql 命令行工具或专用框上的 SSMS 来删除其他变量,例如应用程序错误?
  • 连接失败时是否收到任何错误消息?出港 1433 端口是否开放?
  • 看看你的专用盒子。关闭防火墙和其他安全措施。它可以连接到另一个 SQL 服务器框吗?这可能是 SQL Azure 的问题,但您需要考虑其他故障点
  • 并且只有专用盒子上的防火墙,但该盒子的 ISP 上的防火墙。
  • 我的 Azure Web 和服务角色无法连接到 SQL Azure 数据库;我尝试过重新发布和将各种 IP 范围(包括 0-255)列入白名单,但没有成功。我怀疑即将发生中断。

标签: sql database azure


【解决方案1】:

总结一下。

Windows Azure SQL 数据库(以前称为 SQL Azure)仅在 TCP 端口 1433 上运行。它目前仅支持 SQL Server 身份验证、TCP 连接和 TDS 协议。

为了成功建立与 SQL Azure 的连接,必须满足以下要求:

  • 创建 SQL Azure 服务器和数据库
  • 设置 SQL Azure Server 的防火墙规则以接受来自将连接到该服务器的应用程序 IP 地址的连接
  • 确保盒子(无论是虚拟的、家庭的还是其他)没有阻塞出站 TCP 端口 1433
  • 在连接字符串中显式强制加密
  • 明确选择不信任连接字符串中的服务器证书

请注意,由于SQL Slammer worm,许多(如果不是全部)ISP(互联网服务提供商)和托管商以及公司内的 IT 人员确实会阻止传出 TCP 端口 1433。这种传出端口阻塞似乎是 SQL Azure 新手最面临的问题之一。

2015 年 11 月更新

自 2015 年 8 月起,提供预览功能,可让您使用 Azure AD 对 Azure SQL 数据库进行身份验证。您可以在此处阅读有关此新预览功能的更多信息:https://azure.microsoft.com/en-us/documentation/articles/sql-database-aad-authentication/

【讨论】:

  • 非常感谢 astaykov 的深思熟虑的答复。我相信由于您所说的原因,ISP 已阻止 TCP 端口 1433。我会跟进他们,看看是否是这种情况。
  • 如您所述,一旦我让 ISP 解锁端口,一切正常。非常感谢。
  • 如何“明确选择不信任连接字符串中的服务器证书”? SQL server management studio 没有这个选项
  • @Cherven 如果您通过 Visual Studio 连接,您可以转到高级并在那里进行更改
【解决方案2】:

如果您使用公司网络访问互联网并遇到此问题, 解决此问题的一种简单方法是改用手机的移动热点访问互联网。

确保也禁用您的以太网连接,它也可能连接到互联网。

【讨论】:

    【解决方案3】:

    在这个问题上花了几个小时。最终发现我的修复是我在 Xfinity 防火墙上的设置。我把它设置为高。将设置更改为低安全性后,我可以毫无问题地连接到 Azure sql 数据库。

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多