我刚刚完成了在AD中使用SPN注册我们的SQL Server 2008 R2。 我可以在使用经由SQLNCLI10.1 OLEDB使用以下关键字进行连接:如何使用SPN通过SSMS连接
Server SPN=MSSQLSvc/server.domain.local
和一旦连接,以下查询验证正在使用的Kerberos:
SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid;
结果:
KERBEROS
不过,我无法弄清楚,或者搜索互联网上的信息,使用SPN内SSMS的连接。将建议的关键字添加到“其他连接参数”只是导致
Keyword not supported: 'serverspn'
Keyword not supported: 'server spn'
可以使用SPN在SSMS内进行连接吗?如果我这样做没有指定SPN,测试查询返回:
NTLM
创建SPN的命令是'setspn -A MSSQLSvc/server.domain.local SQLDatabase'。我没有设置特定的TCP端口,希望不会限制使用SPN到TCPIP协议。我将通过向帐户授予SPN权限来尝试在博文中讨论的自动注册,并向后报告。谢谢 – TKInker
我删除了手动设置的SPN:'setspn -D MSSQLSvc/server.domain.local SQLDatabase',使用ASDI Edit设置读/写servicePrincipalName'权限,如Clint博客文章中所述,并重新启动服务器。我可以看到现在自动设置的SPN:'setspn -T * -Q */server.domain.local' CN = SQL引擎帐号,OU =服务帐号,OU =办公网络,DC = DOMAIN,DC =本地''' MSSQLSvc/SERVER.DOMAIN.LOCAL'然而,没有任何改变。数据库服务在域帐户下运行,并且我作为系统管理员还与域帐户连接。我还缺少什么? – TKInker
有可能存在重复的SPN(即与服务和不同的帐户有关联的SPN)。运行setspn -x。这将列出重复的spns。如果有任何欺骗,请使用setspn -d将其删除。此外,在命令提示符下,运行klist以验证您是否拥有端口1433 kerberos票证。 – brian