Настройка связанных серверов для делегирования
SQL Server и Windows могут быть настроены для предоставления возможности клиенту, установившему соединение с экземпляром SQL Server, установить соединение с другим экземпляром SQL Server посредством переадресации учетных данных аутентифицированного пользователя Windows. Такой подход известен как делегирование. При делегировании экземпляр SQL Server, с которым пользователь Windows установил соединение с использованием проверки подлинности Windows, олицетворяет этого пользователя в обмене данными с другим экземпляром. Делегирование защищенной учетной записи необходимо для распределенных запросов, когда сопоставление с собой используется для конкретного имени входа в отношении конкретного связанного сервера.
Требования для делегирования
В качестве иллюстрации к требованиям для делегирования рассмотрите следующий сценарий: пользователь осуществляет вход на клиентский компьютер, который устанавливает соединение с сервером, на котором запущен экземпляр SQL Server, SQLSERVER1. Пользователь собирается выполнить распределенный запрос к базе данных на связанном сервере SQLSERVER2. Такой сценарий, в котором один компьютер устанавливает соединение с другим компьютером, чтобы установить соединение с третьим компьютером, называется двойным прыжком.
Примечание |
---|
На связанном сервере должно быть настроено делегирование, даже когда приложение клиента (в том числе среда SQL Server Management Studio), устанавливающее связь с сервером, находится на одном компьютере с запрашиваемым экземпляром SQL Server. |
Требования для клиента
Имя входа Windows пользователя должно иметь разрешения на доступ к SQLSERVER1 и SQLSERVER2.
Не должно быть установлено свойство пользователя Учетная запись точна и не может быть делегирована в Active Directory.
Клиентский компьютер должен использовать сетевые соединения по протоколу TCP/IP или именованным каналам.
Требования для первого или среднего сервера (SQLSERVER1)
У сервера должно быть имя SPN, зарегистрированное администратором домена.
Учетная запись, под которой работает SQL Server, должна быть доверенной для делегирования.
Сервер должен использовать сетевые соединения по протоколу TCP/IP или именованным каналам.
Второй сервер, SQLSERVER2, должен быть добавлен в качестве связанного сервера. Это можно сделать, выполнив хранимую процедуру sp_addlinkedserver. Например:
EXEC sp_addlinkedserver 'SQLSERVER2', N'SQL Server'
Имена входа связанного сервера должны быть настроены для сопоставления с собой. Это можно сделать, выполнив хранимую процедуру sp_addlinkedsrvlogin. Например:
EXEC sp_addlinkedsrvlogin 'SQLSERVER2', 'true'
Требования для второго сервера (SQLSERVER2)
При использовании сетевых соединений по протоколу TCP/IP сервер должен иметь SPN, зарегистрированный администратором домена.
Сервер должен использовать сетевые соединения по протоколу TCP/IP или именованным каналам.