情况:
sql server 服务器 server01,server02,server03 已在域 aolearn.com 中。
已更换其 sql server 服务账号 为域账号。 (登录身份为 aolearn\test)
使用 sa 账户 相互连接登录正常。
使用 域用户 aolearn\test 链接 server01,server03 正常。
使用 域用户 aolearn\test 链接 Server02 时 报错如下:
首先 cmd 运行
setspn -L Server01 setspn -L Server02 setspn -L Server03
图一
发现 Server02 比另外两个服务器 多了两个MSSQLSvc 打头的SPN。
运行
setspn -L aolearn\test
发现没有 Server02
图二
报错原因可能是:机器安装好系统,直接加入了域,
而在这个之后才修改了主机名。这会造成同一台机器在域中的重复注册。
即 图一 多出来的两个SPN。
所以站在 DBA 的立场,对于新机器的验收,一定要和 SystemAdministrator ,确认SPN。
解决办法:
删除两个以 MSSQLSvc 打头的SPN,重启Server02 SQLServer服务。
1、命令:
setspn -D MSSQLSvc/Server02.aolearn.com:1433 Server02 setspn -D MSSQLSvc/Server02.aolearn.com Server02
setspn -D SPN_NAME:PORT SERVER_NAME
setspn -D SPN_NAME SERVER_NAME
2、重启 SQL Server 服务
3、连接成功
4、cmd:setspn aolearn\test
点击参考:目标主体名称不正确。无法生成 SSPI 上下文。 (Microsoft SQL Server,错误: 0)_ITPUB博客
点击参考:目标主体名称不正确。无法生成SSPI上下文。 - 来瓶冰镇可乐吧 - 博客园 (cnblogs.com)
点击参考:目标主体名称不正确,无法生成 SSPI 上下文。_Burgess_Liu的博客-CSDN博客_目标主体名称不正确
点击参考 spn详解:kerberos中的spn详解 - 渗透测试中心 - 博客园 (cnblogs.com)