Windows Server 2008 R2.
SQL Server 2008 R2 instalado.
O serviço MSSQL é executado como sistema local.
O FQDN do servidor é SQL01.domain.com.
SQL01 ingressou em um domínio do Active Directory chamado domain.com.
A seguir está a saída de 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
Em seguida, inicio o SQL Server Management studio e me conecto ao SQL01 da seguinte maneira:
Em seguida, executo a seguinte consulta:
SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid
E o resultado é NTLM. Por que o resultado não é Kerberos? Os SPNs parecem estar corretos para usar a conta Sistema Local. O servidor não está em um cluster ou está usando um CNAME.
sql-server
kerberos
sql-server-2008-r2
spn
Ryan Ries
fonte
fonte
Respostas:
É porque eu estava me conectando ao SQL Server localmente, a partir do mesmo servidor que hospedava o SQL Server. Quando eu me conecto de outra máquina na rede, o mecanismo de autenticação usado é o Kerberos, conforme o esperado.
O SQL Server sempre usará NTLM se conectar localmente. O Kerberos é usado apenas se conectar remotamente.
Esta postagem do Blog de protocolos do SQL Server , embora datada, diz a mesma coisa:
fonte