Как выполнять межсерверные запросы из облачной базы данных Azure в базу данных сервера Premise
Цель
Создание запроса от базы данных SQL сервера Azure к базе данных сервера локального сервера.
Этот запрос раньше выполнялся с использованием связанных серверных объектов с двух локальных серверов с соответствующими базами данных.
Я уже успешно выполнил перекрестные запросы между двумя базами данных на облачном сервере Azure. Однако я не смог воспроизвести аналогичный аспект, который объект связанного сервера может предоставить между сервером Azure и локальным сервером.
Текущий сценарий
На сервере A я создал связанный объект сервера с сервером B. Мои два локальных сервера общаются так:
--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
Внешний источник данных
Чтобы установить связь с моим локальным сервером с моим SQL-сервером Azure, я должен создать внешний источник данных... Я считаю, что моя проблема связана с внешним источником данных.
-- ===========================================================
-- 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
Поскольку я пытаюсь получить доступ к своему локальному серверу, называемому serverB, с сервера Azure, нужно ли мне указывать фактический IP-адрес? Не уверен, что мне здесь не хватает...
1 ответ
Since I am trying to access my on premise server called serverB from the Azure server
вы не можете сделать это.. но вы можете сделать наоборот
Допустим, имя вашего лазурного сервера - AZ, а onpremises имя сервера - B... вы можете создать связанный сервер для AZ в B и запросить AZ из B