
Я пытаюсь настроить Kerberos для моего SQL Server (учетная запись домена ядра базы данных). Я выполнил следующую команду:
SETSPN -A MSSQLSvc/MyDBServer:1433 МойДомен\SQLServerService
Замените MyDBServer на полное доменное имя сервера, а MyDomain\SQLServerService на имя моей учетной записи.
Затем я выполнил запрос:
SELECT s.session_id , c.connect_time , s.login_time , s.login_name , c.protocol_type , c.auth_scheme , s.HOST_NAME , s.program_name FROM sys.dm_exec_sessions s JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
Это возвращает NTLM. Так что это не Kerberos. Что я упускаю? Вкладка делегирования доступна для учетной записи, поэтому бит spn сработал отлично. Разве не требуется задать некоторые настройки на вкладке делегирования? Я видел это в случае настройки kerberos для Sharepoint 2010 (который я собираюсь настроить).
Спасибо
решение1
Я обнаружил, что мне нужно зарегистрировать SPN для разного синтаксиса для описания сервера SQL. По какой-то причине SQL использует разные синтаксисы на пути к аутентификации. Зарегистрируйте каждый из этих форматов.
MSSQLSvc/SqlServerName.perrigo.com:instancename
MSSQLSvc/SqlServerName:instancename
MSSQLSvc/SqlServerName.domainname.com:1433
MSSQLSvc/SqlServerName:1433
MSSQLSvc/SqlServerName.domainname.com
MSSQLSvc/SqlServerName
решение2
Вы тестировали соединение на локальном хосте?
Похоже, в некоторых случаях локального хоста существует возможность отката (вероятно, по соображениям производительности, поскольку вам не нужен Kerberos на локальной машине) к NTLM, даже если у вас есть SPN.