【发布时间】:2021-01-28 18:47:01
【问题描述】:
我们在 Azure 上有几个数据库,它们使用弹性查询和 sp_execute_remote 在它们之间来回查询。我们希望将这些数据库移动到 VNET 上,并为应用服务提供一个专用端点来使用它。这部分被证明相对容易,我们的应用服务能够与这些数据库通信没有问题。然而,当我们建立连接并关闭对数据库的公共访问时,我们的外部表似乎停止了访问。
现在运行 select * from externaltable 会导致如下错误:
Msg 46823, Level 16, State 1, Line 1
Error retrieving data from xxxxxxxxxxxx.database.windows.net.yyyyyyyyyy. The underlying error message received was: 'Reason: An instance-specific error occurred while establishing a connection to SQL Server. Connection was denied since Deny Public Network Access is set to Yes (https://docs.microsoft.com/azure/azure-sql/database/connectivity-settings#deny-public-network-access). To connect to this server, use the Private Endpoint from inside your virtual network (https://docs.microsoft.com/azure/sql-database/sql-database-private-endpoint-overview#how-to-set-up-private-link-for-azure-sql-database).'.
我怀疑这些请求仍在路由到公共端点,并且 SQL 服务器没有观察到通过私有端点到其他服务器的 VNET 路由。有没有办法让它工作?对于应用服务,我们设置了WEBSITE_VNET_ROUTE_ALL,但我不认为 SQL 服务器有完全的平行关系。
如何启用 vnet 和私有端点,同时仍然能够进行弹性查询?
【问题讨论】:
标签: sql-server azure azure-sql-database