azure - 无法从 SSMS 连接到 Azure Sql 数据库:“无法访问此服务器上的公共数据终结点...”
问题描述
尝试从客户端计算机上的 SSMS 连接到我的 Azure Sql 数据库时,出现以下错误:
无法访问此服务器上的公共数据终结点。要连接到此服务器,请使用虚拟网络内部的专用端点
我的 Azure Sql 服务器防火墙设置似乎是正确的:
在第一条规则中,开始和结束 IP 地址等于我的 azure Web 应用程序的 IP 地址,顺便说一句,它可以正常连接。在第二条规则中,开始和结束 IP 地址等于我的客户端计算机的 IP 地址。
问题开始于几天前,直到那时我从 SSMS 连接都没有问题。
一些额外的点:
- 使用在线开放端口检查器,我验证了域 <mysqlserver>.database.windows.net 上的端口 1433 已打开
- 在同一台客户端计算机上,在 Windows ODBC 管理员中,我有一个指向同一个数据库的 DSN - 它连接正常。但是,如果我使用相同的设置定义一个新的 DSN,它会收到与上述 SSMS 相同的错误。
- 我不知道这是否相关,但是当我尝试更改 Azure Sql 服务器“防火墙和虚拟网络”页面(如上图)中的任何设置时,大多数情况下都不会保存更改。活动日志显示操作超时。我在MS 论坛上报告了这个问题,但还没有收到任何有用的回复。
解决方案
在此处或在 MS 论坛中没有得到任何帮助后,我别无选择,只能支付 Azure 支持计划。我报告了这个问题,他们从他们这边解决了这个问题。我现在可以使用 SSMS 连接到我的数据库。
我知道这是 Azure 平台中的一个错误。这是我从他们那里收到的消息:
我们最近推出了一项名为“拒绝公共端点访问”的功能,该功能在服务器级别启用/禁用。但是,我们错过了 MS 工作流程中的一个状态(停用)。这意味着,如果服务器包含停用的实例,并且客户尝试在服务器上启用/禁用公共端点访问(面向客户的属性名称为 PublicNetworkAccess),则工作流将因为无法处理停用的实例而陷入困境。
我们目前已经对此进行了修复:http://sqlbuvsts01:8080/Main/SQL%20Server/_versionControl/changeset/1410047。但是,由于目前没有飞行区,我们正在研究如何尽快部署此修复程序
推荐阅读
- javascript - JavaScript 中有没有一种方法可以创建一个对象,其中对象键与用于值的变量具有相同的名称?
- javascript - 当以正确的顺序包含脚本时,为什么我们应该在 ecmascript 中进行导入导出
- php - 将多个变量传递给 PHP 文件
- matlab - Matlab 数值求解器输出:警告:无法找到明确的解决方案
- haskell - 运行堆栈构建时如何解释此错误?
- c++ - 有没有办法根据创建的派生类来分配成员?
- mongodb - 将 docker 实例连接到 mongoDB atlas 时出错
- javascript - 如何使用javascript找出成对的打开和关闭html标签?
- sql-server - 尝试使用 spark 从 SQL Server 读取表时出错
- reactjs - 更新到 create-react-app v4 ,而不是渲染图像