两台Server,环境一样,都使用同一域账号。Server03的SQL Server可以通过Windows认证连接到Server04,但Server04通过Windows认证连接Server03时报如下错误:
目标主体名称不正确,无法生成 SSPI 上下文。
PING Server03或Ping -a Server03,看起来都正常,问题究竟出在何处呢?无法生成SSPI上下文的原因比较多,具体可以搜索网络,但我决定先从“目标主体名称不正确”下手。如下:
首先运行setspn -L Server03和setspn -L Server04,结果发现Server03多了两个MSSQLSvc打头的SPN。
接下来,删除两个以MSSQLSvc打头的SPN,命令时setspn -D SPN_name Server03
最后重启Server03,再用Server04通过Windows认证连接Server03时,发现问题解除,成功建立了连接。
关于setspn命令的更多信息可以参考http://technet.microsoft.com/zh-cn/library/cc731241(v=WS.10).aspx。
关于如何排查“Cannot generate SSPI context”(无法生成 SSPI 上下文)错误消息,可参考http://support.microsoft.com/kb/811889/zh-cn
顺利解决问题