Как создавать и запрашивать связанные серверы баз данных в SQL Server?

#sql #sql-server #database

Вопрос:

Мне нужно объединить два разных сервера баз данных (IP-адреса 10.0.0.50 и 10.0.0.51). Каков наилучший способ?

Ответ №1:

Решение, которое я нашел:

1) Запустите сохраненный процесс

 exec sp_addlinkedserver    @server='10.0.0.51'
 

2) Убедитесь, что серверы были связаны (перечисляет связанные серверы)

 exec sp_linkedservers
 

3) Запустите запрос, используя формат

  [10.0.0.51].DatabaseName.dbo.TableName
 

Ответ №2:

Вам необходимо использовать sp_linkedserver для создания связанного сервера.

 sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] 
 [ , [ @provider= ] 'provider_name' ]
 [ , [ @datasrc= ] 'data_source' ] 
 [ , [ @location= ] 'location' ] 
 [ , [ @provstr= ] 'provider_string' ] 
 [ , [ @catalog= ] 'catalog' ] 
 

Более подробная информация доступна на MSDN.

Комментарии:

1. Да-это одна из тех вещей, где я понял, что ответ был там, просто хотел сохранить инструкции в переполнении стека 🙂

Ответ №3:

Я знаю, что приведенные выше ответы хороши, но хотел бы поделиться некоторыми деталями, которые, я надеюсь, другие сочтут полезными. Стоит упомянуть о части пользовательского доступа, в которой, я думаю, людям понадобится помощь.

настройте ссылку:

exec sp_addlinkedserver @server='10.10.0.10MyDS';

настройте доступ для удаленного пользователя, пример ниже:

exec sp_addlinkedsrvlogin '10.10.0.10MyDS', 'false', null, 'adm', 'pwd';

смотрите связанные серверы и учетные записи пользователей:

exec sp_linkedservers;

select * from sys.servers;

select * from sys.linked_logins;

запустите удаленный запрос:

select * from [10.10.0.10MyDS].MyDB.dbo.TestTable;

удалите связанный сервер и созданных пользователей для входа (adm/pwd)

exec sp_dropserver '10.10.0.10MyDS', 'droplogins'; -- drops server and logins

Ресурсы:

sp_addlinkedserver

sp_dropserver

sp_addlinkedsrvlogin

sp_droplinkedsrvlogin

Ответ №4:

Вы можете, как уже упоминалось, использовать sp_addlinkedserver. Однако вы также можете сделать это с помощью Enterprise Manager (2000) или SQL Server Management Studio (2005). Под узлом «Безопасность» находится узел «Связанные серверы», который можно использовать для добавления и настройки связанных серверов. Вы можете указать параметры безопасности, олицетворение и т.д.

Смотрите их для SQL Server 2000:

Настройка Связанных Серверов

Обеспечение Безопасности Для Связанных Серверов

Настройка поставщиков OLEDB для распределенных запросов

Смотрите их для SQL Server 2005:

Связывание Серверов

Безопасность для связанных серверов

Настройка связанных серверов для делегирования

Настройка поставщиков OLEDB для распределенных запросов

Комментарии:

1. В SQLServer 2012 этот узел был перемещен в раздел «Объекты сервера».