使用 Azure VPN 客户端连接到 Azure 专用链接/端点上的 Azure SQL 数据库不起作用

问题描述

我正在尝试使用 P2S VPN 为远程工作的用户设置 Azure sql 数据库。他们正在使用一些需要访问数据库的应用程序,如 SSMS 和 Visual Studio。我们允许他们通过将其 IP 地址列入白名单来进行连接,但我们希望阻止这种情况并在 Azure 上的 sql 服务器上使用拒绝公共网络访问选项。

每当我尝试使用 SSMS 进行连接时,我都会收到以下消息:

enter image description here

我已按照 MS Docs 上的文档和教程中概述的步骤操作,但我无法让私有端点与数据库一起工作。

我已经创建了虚拟网络网关并将其连接到 Azure Active Directory,我可以看到用户登录时创建的会话。

我使用地址范围 = 10.1.0.0/16 和子网地址范围 = 10.1.0.0/24 创建了虚拟网络。我已将专用终结点连接附加到 Azure sql 服务器并将虚拟网络添加到防火墙。

是否需要一些设置来允许用户从他们的 PC 连接到数据库而不将 IP 地址列入白名单?

解决方法

方式 1:

您可以直接从您的虚拟机使用域名而不是 IP 网络。因此,您需要在 Azure 中提供一些可以翻译域的服务 名称到 IP。

有必要正确配置您的 DNS 设置,以将私有端点 IP 地址解析为连接字符串的完全限定域名 (FQDN)。

  • 对本地工作负载使用 DNS 转发器来解析专用终结点的 FQDN,以解析 Azure 中的 Azure 服务公共 DNS 区域。

DNS 转发器是在虚拟网络上运行的虚拟机 链接到可以代理来自的 DNS 查询的私有 DNS 区域 其他虚拟网络或来自本地。这是必需的,因为 查询必须从虚拟网络发起到 Azure DNS。

.

  • 使用虚拟机上的主机文件覆盖 DNS:Azure 在公共 DNS 上创建规范名称 DNS 记录 (CNAME)。这 CNAME 记录将解析重定向到私有域名 (privatelink.database.windows.net)。您可以覆盖分辨率 使用您的私有 IP 地址 端点。见azure-provided-name-resolution.

参考文献:


方式 2:

您可以选择 SQL managed instance ,这是另一个 Azure SQL PaaS 产品。它部署在 VNet 中,没有公共服务 端点并使用根证书和客户端证书进行身份验证 天蓝色。

(当人们不喜欢使用私有端点时,请使用此方法:)

其他参考资料:

  1. DNS-Client-Configuration-Options
  2. DNS-Integration-Scenarios
  3. DNS-Scenario-Using-AD