我正在使用2个在Windows Server 2012上运行SQL Server 2012的SQL Server来设置DEV / TEST环境。我们从Windows Server 2008上的SQL Server 2005迁移,在此我们已经正确启动了该服务器。
在SQL Server 2012中,Kerberos身份验证不起作用。
每个服务器都有自己的Active Directory帐户,该帐户具有通过Active Directory用户和计算机授予的“写入服务主体名称”和“读取服务主体名称”权限。每当我连接到SQL Server 2005服务器并运行时:
SELECT net_transport, auth_scheme
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
我知道了:
net_transport auth_scheme
TCP KERBEROS
当我对新的SQL Server 2012实例执行相同的查询时,我看到:
net_transport auth_scheme
TCP NTLM
如果我使用SetSPN -Q MSSQLSvc/*
Active Directory查询服务主体名称,则会看到列出的2005和2012服务器,与服务器名称完全相同。
例如:
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
要对SQL Server 2012启用Kerberos身份验证,我还需要做什么?联机丛书似乎无话可说,除了必须设置SPN。显然,它们是。两台2012年计算机上的SQL Server错误日志都说:
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.