Как выполнять межсерверные запросы из облачной базы данных 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

Другие вопросы по тегам