Windows Server 2008 R2.
SQL Server 2008 R2 instalado.
El servicio MSSQL se ejecuta como sistema local.
El FQDN del servidor es SQL01.domain.com.
SQL01 se une a un dominio de Active Directory llamado domain.com.
La siguiente es la salida 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
Luego inicio el estudio de administración de SQL Server y me conecto a SQL01 de esta manera:
Luego ejecuto la siguiente consulta:
SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid
Y el resultado es NTLM. ¿Por qué el resultado no es Kerberos? Los SPN parecen ser correctos para usar la cuenta del sistema local. El servidor no está en un clúster o utiliza un CNAME.
sql-server
kerberos
sql-server-2008-r2
spn
Ryan Ries
fuente
fuente
Respuestas:
Es porque me estaba conectando a SQL Server localmente, desde el mismo servidor que alojaba SQL Server. Cuando me conecto desde otra máquina en la red, el mecanismo de autenticación utilizado es Kerberos, como se esperaba.
SQL Server siempre usará NTLM si se conecta localmente. Kerberos solo se usa si se conecta de forma remota.
Esta publicación del Blog de Protocolos de SQL Server , aunque fechada, dice lo mismo:
fuente