无法私下连接到 Azure SQL Server 实例

问题描述 投票:0回答:1

我已按照所有步骤和指南在 Azure 上创建了 Microsoft SQL Server 实例。我禁用了公共访问并创建了专用端点和相应的 DNS。全部位于同一区域、订阅和子网中。无法通过 IP 或主机名进行私下连接(我有连接到该子网的 VPN)。通过主机名连接变为公共连接并返回公共访问已禁用的消息。我错过了什么?

顺便说一句:当我启用公共访问并添加防火墙规则时,我可以毫无问题地连接。

我尝试创建另一个 SQL Server,更加注意说明并让同事参与该过程。同样的结果:无法私密连接。

sql-server azure
1个回答
0
投票

这不是完整的答案(我们确实没有足够的答案),但这里有一些潜在的问题和故障排除步骤。

我假设“SQL Server 实例”指的是 Azure SQL 托管实例。如果不是,则并非所有这些都适用。

首先,在您的描述中,不清楚是否需要专用端点。创建具有专用网络的虚拟网络(例如,禁用对资源的 publix 访问并添加专用终结点)时,SQL 托管实例的工作方式略有不同 - 它们在 VNET 中创建自己的子网(和 NSG),并根据该子网获取其 IP .

SQL MI 的私有端点似乎是为了允许跨 VNET 访问 - 请参阅 https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connectivity-architecture-overview?view= azuresql#通信概述

禁用公共访问但没有专用终结点的 SQL MI,具有公共 DNS 条目 - 只不过该条目将指向内部 VNET(例如 10.0.0.210)。

话虽如此,这里有一些故障排除步骤。

  • 检查您的 DNS。最简单的方法(从 Windows 盒子)是运行(从命令行)
    nslookup <servername>.<stuff>.database.windows.net
    。它将返回一个 IP 地址(希望如此)。检查是否正确。
  • 如果不正确,您需要检查您的 DNS 设置方式。如果您使用专用端点,则它们的 IP 地址不是公开的。相反,您需要确保您的 DNS 设置可以将请求转发到 Azure。这将涉及到
    • 确定您的主要 DNS 源(例如,您是否使用服务器作为 DNS、路由器或类似设备)。
    • 创建 Azure“私有 DNS 解析器” - 但请注意成本
    • 确保您的主要 DNS 源使用“条件转发”将 database.windows.net 的 DNS 请求传递到私有 DNS 解析器
  • 另请注意,MI 创建自己的子网和 NSG - 检查 NSG 是否阻止您的流量。请参阅 https://learn.microsoft.com/en-us/azure/azure-sql/driven-instance/connectivity-architecture-overview?view=azuresql#network-requirements - 特别是有关 NSG 的部分。确保您的 NSG 允许您的 VPN 端点访问端口 1433 上的 SQL MI。
© www.soinside.com 2019 - 2024. All rights reserved.