- Для примера возьмем ситуацию. Есть такая схема: <клиентский ПК> - <SQL Server 1> - <SQL Server 2>
SQL Server 2 - это linked сервер для SQL Server 1
Нужно настроить Windows аутентификацию между SQL Server 1 и SQL Server 2. - Обязательные условия:
- службы SQL Server-а должны быть запущены от имени доменной учетной записи
- учетные записи, которые будут работать с linked сервером должны быть зарегистрированы на обоих SQL серверах и им должны быть выданы соответствующие права
- Тестовая конфигурация выглядит так:
SQL Server 1: hostname - sqlsrv1.domain.com service account - domain\srv_sqlsrv1
SQL Server 2: hostname - sqlsrv2.domain.com service account - domain\srv_sqlsrv2 - Заходим на контролер домена и проверяем есть ли SPN записи для учетных записей srv_sqlsrv1 и srv_sqlsrv2
setspn -L domain\srv_sqlsrv1
setspn -L domain\srv_sqlsrv2 - Должны быть созданы SPN записи для службы MSSQLSvc. Если их нет, создаем для обоих серверов:
setspn -A MSSQLSvc/sqlsrv1.domain.com domain\srv_sqlsrv1
setspn -A MSSQLSvc/sqlsrv1.domain.com:1433 domain\srv_sqlsrv1
setspn -A MSSQLSvc/sqlsrv2.domain.com domain\srv_sqlsrv2
setspn -A MSSQLSvc/sqlsrv2.domain.com:1433 domain\srv_sqlsrv2 - Заходим в консоль Active Directory Users and Computers и находим учетные записи обоих сервров и их сервисных учетных записей. Для них необходимо:
- проверить, что опция "Account is sensitive and cannot be delegated" на вкладке Account отключена для обоих сервисных учетных записей
- установить опцию "Trust this user for delegation to any service (Kerberos only)" на вкладке Delegation для сервисных учетных записей
- установить опцию "Trust this computer for delegation to any service (Kerberos only)" на вкладке Delegation для учетных записей серверов
- Теперь можно создавать и настраивать linked сервер.
- Вариант 1.
В свойсвах linked сервера на вкладке Security кликаем Add и выбираем логин на SQL сервере, который будет подключаться к удаленному SQL серверу. И устанавливаем птичку Impersonate. - Вариант 2.
В свойсвах linked сервера на вкладке Security внизу выбиравем вариант "Be made using the login's current security context". Теперь все обращения к удаленному SQL серверу будут автоматически выполняться от имени доменного пользователя, который иницировал запрос.
No comments:
Post a Comment