Windows Server 2008 R2.
SQL Server 2008 R2 installé.
Le service MSSQL s'exécute en tant que système local.
Le nom de domaine complet du serveur est SQL01.domain.com.
SQL01 est joint à un domaine Active Directory nommé domain.com.
Voici la sortie 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
Je lance ensuite SQL Server Management studio et me connecte à SQL01 de la manière suivante:
J'exécute ensuite la requête suivante:
SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid
Et le résultat est NTLM. Pourquoi le résultat n'est-il pas Kerberos? Les SPN semblent être corrects pour utiliser le compte système local. Le serveur n'est pas dans un cluster ou utilise un CNAME.
sql-server
kerberos
sql-server-2008-r2
spn
Ryan Ries
la source
la source
Réponses:
C'est parce que je me connectais au SQL Server localement, à partir du même serveur qui hébergeait SQL Server. Lorsque je me connecte à partir d'une autre machine sur le réseau, le mécanisme d'authentification utilisé est Kerberos, comme prévu.
SQL Server utilisera toujours NTLM lors de la connexion locale. Kerberos n'est utilisé qu'en cas de connexion à distance.
Ce post du blog SQL Server Protocols , bien que daté, dit la même chose:
la source