Почему MS SQL Server использует аутентификацию NTLM?

Почему MS SQL Server использует аутентификацию NTLM?

Windows Server 2008 R2.

Установлен SQL Server 2008 R2.

Служба MSSQL работает как локальная система.

Полное доменное имя сервера — SQL01.domain.com.

SQL01 присоединен к домену Active Directory с именем domain.com.

Ниже приведен вывод setspn:

C:\> setspn -L sql01
...
MSSQLSvc/SQL01.domain.com:1433
MSSQLSvc/SQL01.domain.com
WSMAN/SQL01.domain.com
WSMAN/SQL01
TERMSRV/SQL01.domain.com
TERMSRV/SQL01
RestrictedKrbHost/SQL01    
RestrictedKrbHost/SQL01.domain.com
HOST/SQL01.domain.com
HOST/SQL01

Затем я запускаю SQL Server Management Studio и подключаюсь к SQL01 следующим образом:

введите описание изображения здесь

Затем я запускаю следующий запрос:

SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid 

И результат — NTLM. Почему результат не Kerberos? SPN-имена, похоже, верны для использования учетной записи Local System. Сервер не находится в кластере и не использует CNAME.

решение1

Это потому, что я подключался к SQL Server локально, с того же сервера, на котором размещался SQL Server. Когда я подключаюсь с другой машины в сети, механизм аутентификации, как и ожидалось, — Kerberos.

SQL Server всегда будет использовать NTLM при локальном подключении. Kerberos используется только при удаленном подключении.

Этот пост изБлог протоколов SQL Server, хотя и устарело, говорит то же самое:

1) Kerberos используется при установлении удаленного соединения по TCP/IP, если присутствует SPN.

2) Kerberos используется при создании локального TCP-соединения на XP, если присутствует SPN.

3) NTLM используется при локальном подключении на WIN 2K3.

4) NTLM используется поверх NP-соединения.

5) Если SPN не найден, используется NTLM через TCP-соединение.

Связанный контент