我有一个客户端,我无法使用SQL Server客户端工具远程连接到他的数据库 他正在运行安装在实例名称INTERNAL
中的SQL Server 2012我缩小了问题
我跑
execute XP_READERRORLOG
并收到错误:
SQL Server网络接口库无法为SQL Server服务注册服务主体名称(SPN)[MSSQLSvc / SERVERNAME.domainname.com:INTERNAL]。 Windows返回码:0xffffffff,状态:63。未注册SPN可能导致集成身份验证使用NTLM而不是Kerberos。这是一条情报信息。只有在身份验证策略需要Kerberos身份验证且SPN尚未手动注册的情况下,才需要采取进一步操作。
所以我检查了sql服务在默认虚拟帐户“NT Service \ MSSQL $ INTERNAL”下运行
我按照这里的建议http://msdn.microsoft.com/en-us/library/ms191153.aspx
setspn -A MSSQLSvc/ServerName.domainname.com:1433 "NT Service\MSSQL$INTERNAL"
然而它告诉我:
无法找到帐户MSSQL $ INTERNAL
在命令提示符命令中我做错了什么?
我看了a blog here。
如果SQL Server实例在LocalSystem帐户下运行,则不必运行SETSPN实用程序。
但我不明白为什么我会收到错误?
答案 0 :(得分:2)
由于该服务作为网络服务运行,我相信帐户名称必须是机器名称。
特里斯坦在http://blogs.technet.com/b/tristank/archive/2006/05/08/spns-r-fn.aspx的博客中展示了类似的东西。
他的示例是HTTP,但您应该能够将其更改为MSSQLSvc:
对于在默认端口上作为NetworkService运行的应用程序池:
SETSPN -A HTTP/intranetweb syd-inet-web01
(最后一部分是机器名称)
答案 1 :(得分:1)
从abatishchev的消息中可以看出,SQL服务是在虚拟帐户(Windows7 / Server2008R2中的常见方案)下运行,而不是网络服务。我有同样的问题,我的结论是,无法手动为虚拟(可能是MSA)帐户注册SPN ...
除了MS191153,您可以阅读ms143504(SQL.110),其中指出: "如果虚拟帐户未能注册服务主体名称(SPN),请手动注册SPN"。并且发送给MS191153,除了说VA和MSA都有权默认注册SPN之外,它没有提供任何有用的信息。如果您挖掘文章"服务帐户循序渐进指南"您可以读到,Windows Server 2008 R2功能级别的域为MSA和VA的自动密码管理和SPN管理提供本机支持。对于Windows 2003/8,需要其他配置。您的域名FL是什么?
在我的情况下,服务重新启动后,SPN会自动注册而不会出现任何进一步的问题。再次感谢MS为"简化"事情...