如何执行从Azure云数据库到本地服务器数据库的跨服务器查询



目标

创建从Azure服务器SQL数据库到内部部署服务器服务器数据库的查询。

这个查询过去是使用来自两个内部部署服务器及其各自数据库的链接服务器对象进行的。

我已经成功地在Azure云服务器上的两个数据库之间进行了跨数据库查询。然而,我无法在Azure服务器和内部部署服务器之间复制链接服务器对象可以提供的类似方面。


当前场景

serverA上,我创建了一个链接到serverB的服务器对象。我的两个本地服务器通信如下:

--serverA = on premise server
--serverB = on premise server
Using mycn As New SqlConnection("Data Source=serverA;Initial Catalog=DatabaseA;User Id=username;Password=pwd")
Dim query As String = "SELECT * FROM [DatabaseA].dbo.tableA " &
"INNER JOIN [serverB].[DatabaseB].dbo.tableB ON tableA_ID = tableB_ID"
End Using

外部数据源

为了与我的内部部署服务器通信到我的Azure SQL服务器,我必须创建一个外部数据源。。。我相信我的问题取决于我的外部数据源。

-- ===========================================================
-- Create external data source template for Azure SQL Database
-- ===========================================================
IF EXISTS (
SELECT *
FROM sys.external_data_sources
WHERE name = N'serverB_DataSource'
)
DROP EXTERNAL DATA SOURCE serverB_DataSource
GO
CREATE EXTERNAL DATA SOURCE serverB_DataSource WITH
(
TYPE = RDBMS,
LOCATION = N'serverB',
DATABASE_NAME = N'databaseB',
CREDENTIAL = myCreds
)
GO

由于我正试图从Azure服务器访问名为serverB的内部部署服务器,我需要指定它的实际IP吗?不确定我在这里错过了什么。。。

Since I am trying to access my on premise server called serverB from the Azure server

你不能这样做。。但是你可以用其他方法绕过

假设您的azure服务器名称为AZ,而onpromises服务器名称为B……您可以在B中为AZ创建一个链接服务器,并从B 查询AZ

相关内容

  • 没有找到相关文章