无法在Windows 2008R2中注册SPN以为SQL Server 2012服务帐户创建SPN

时间:2013-07-07 19:26:12

标签: sql-server

我有一个客户端,我无法使用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实用程序。

但我不明白为什么我会收到错误?

2 个答案:

答案 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为"简化"事情...

相关问题