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

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 или именованным каналам.