Ich richte eine DEV / TEST-Umgebung mit 2 SQL Servern ein, auf denen SQL Server 2012 unter Windows Server 2012 ausgeführt wird. Wir wechseln von SQL Server 2005 unter Windows Server 2008, wo dies bereits ordnungsgemäß ausgeführt wird.
In SQL Server 2012 funktioniert die Kerberos-Authentifizierung nicht.
Jeder Server verfügt über ein eigenes Active Directory-Konto mit den Rechten "Write Service Principal Names" und "Read Service Principal Names", die von Active Directory-Benutzern und -Computern gewährt werden. Wann immer ich eine Verbindung zu den SQL Server 2005-Servern herstelle und Folgendes ausführe:
SELECT net_transport, auth_scheme
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
Aha:
net_transport auth_scheme
TCP KERBEROS
Wenn ich dieselbe Abfrage für meine neuen SQL Server 2012-Instanzen durchführe, wird Folgendes angezeigt:
net_transport auth_scheme
TCP NTLM
Wenn ich SetSPN -Q MSSQLSvc/*
Active Domain nach Dienstprinzipalnamen abfrage, werden sowohl die Server 2005 als auch 2012 aufgelistet, und zwar genauso wie der Name des Servers.
Zum Beispiel:
MSSQLSvc/SERVERa2005.domain.inet
MSSQLSvc/SERVERa2005domain.inet:1433
MSSQLSvc/SERVERb2005.domain.inet
MSSQLSvc/SERVERb2005domain.inet:1433
MSSQLSvc/SERVERa2012.domain.inet
MSSQLSvc/SERVERa2012domain.inet:1433
MSSQLSvc/SERVERb2012.domain.inet
MSSQLSvc/SERVERb2012domain.inet:1433
Was muss ich noch tun, um die Kerberos-Authentifizierung für SQL Server 2012 zu aktivieren? Books Online scheint nichts anderes zu sagen zu haben, als dass die SPNs eingerichtet werden müssen. Welches klar sind sie. SQL Server-Fehlerprotokolle auf beiden 2012-Computern sagen:
2012-12-10 14:55:47.630 The SQL Server Network Interface library
successfully registered the Service Principal Name (SPN)
[ MSSQLSvc/SERVERa2012.domain.inet ] for the SQL Server
service.
2012-12-10 14:55:47.630 The SQL Server Network Interface library
successfully registered the Service Principal Name (SPN)
[ MSSQLSvc/SERVERa2012.domain.inet:1433 ] for the SQL
Server service.
2012-12-10 14:55:47.590 SQL Server is attempting to register a Service
Principal Name (SPN) for the SQL Server service.
Kerberos authentication will not be possible until a
SPN is registered for the SQL Server service. This is an
informational message. No user action is required.