通过客户端网关连接到 VNET 时访问 Azure SQL 数据库

Access Azure SQL Database when connected to VNET via Client Gateway

我有一个 Azure 虚拟网络,我使用从 Azure 下载的 VPN 客户端点对点连接到网络。这按预期工作,因为我现在可以根据需要通过 RDP 连接到 VNet 中的虚拟机。

我还有一个 Azure SQL 服务器实例,在防火墙部分,我已将上面的 VNet 添加到虚拟网络规则列表中。

使用我的工作笔记本电脑,我现在希望能够使用 VPN 客户端连接到 VNet,然后能够使用 SSMS 访问 SQL 数据库。但是,当我尝试连接时,我收到一条消息,告诉我无法访问服务器,而是需要将我的客户端 IP 添加到防火墙规则列表中,这是我试图避免做的事情。

我还需要做些什么才能让它正常工作吗?

Is there something else I need to be doing here to get this working?

如果您只是使用 Azure SQL 数据库,它是 Azure 中的一个 PaaS,它本身并不位于 VNet 中。可以直接在Azure SQL Server的防火墙中添加客户端Public IP。而这不是您的期望。您需要在 VNet 中创建它,然后您可以执行以下操作。

如果您使用的是位于 VNet 内的 SQL 托管实例,想要使用私有地址从本地访问数据库实例,您需要在这些实例之间建立 VPN 连接或 ExpressRoute 连接本地和托管实例 VNet。

现在,您拥有 P2S VPN 连接,您仍然需要在 P2S VNet 与 SQL 实例 VNet 之间使用 Gateway Transit 建立 VNet 对等互连。 注意:要使用远程网关或允许网关传输,对等虚拟网络必须位于同一区域。为此,请在对等设置下进行以下非常具体的更改。

In the VNet that hosts the VPN gateway, go to Peerings, then to the Managed Instance peered VNet connection, and then click Allow Gateway Transit.

In the VNet that hosts the Managed Instance, go to Peerings, then to the VPN Gateway peered VNet connection, and then click Use remote gateways.

对等互连完成后,您可以在 Azure 门户上查看状态。您需要删除 VPN 客户端并重新下载并在您的笔记本电脑上重新安装,这将使路由在您的客户端更新。

如果您已成功建立本地到 Azure 的连接,但无法建立到托管实例的连接,请检查您的防火墙是否在 SQL 端口上打开了出站连接1433 以及 11000-12000 重定向端口范围。

更多参考,您可以阅读Connect your application to Azure SQL Database Managed Instance.