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

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

Ответ 1

Для создания связанного сервера вам нужно использовать sp_linkedserver.

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

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

Ответ 2

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

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

exec sp_addlinkedserver    @server='10.0.0.51'

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

exec sp_linkedservers

3) Запустите запрос в формате

 [10.0.0.51].DatabaseName.dbo.TableName

Ответ 3

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

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

exec sp_addlinkedserver @server='10.10.0.10\MyDS';

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

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

см. связанные серверы и пользовательские логины:

exec sp_linkedservers;

select * from sys.servers;

select * from sys.linked_logins;

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

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

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

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

ресурсы:

sp_addlinkedserver

sp_dropserver

sp_addlinkedsrvlogin

sp_droplinkedsrvlogin

Ответ 4

Вы можете, как уже упоминалось, использовать sp_addlinkedserver. Однако вы также можете сделать это через Enterprise Manager (2000) или SQL Server Management Studio (2005). В разделе "Безопасность" node имеется "Связанные серверы" node, которые вы можете использовать для добавления и настройки Linked Servers. Вы можете указать параметры безопасности, олицетворение и т.д.

См. их для SQL Server 2000:

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

Установление безопасности для связанных серверов

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

См. их для SQL Server 2005:

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

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

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

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