SQL Server 中显式错放的 SPN 问题
本文可帮助你解决影响显式错放服务主体名称(SPN)的 SQL Server 一致性身份验证问题。
现象
如果在连接字符串中指定的 SPN 存在于Microsoft SQL Server 未使用的服务帐户上,则会收到安全支持提供程序接口(SSPI)上下文错误消息。
如果 SPN 未正确注册,可能会收到以下错误消息:
目标主体名称不正确。 无法生成 SSPI 上下文。
如果尝试创建已存在的 SPN,将收到以下错误消息:
找到重复的 SPN,中止操作!
原因
显式错放的 SPN 可能会导致 Kerberos 身份验证中出现问题,并阻止客户端连接到服务。
解决方法
如果遇到显式错放的 SPN,可能需要为服务创建或重新创建 SPN。 若要使用 SETSPN
命令创建或重新创建 SPN,请执行以下步骤:
- 运行
SETSPN -L domain\svcacct
命令以列出 SQL Server 服务帐户上的 SPN。 SETSPN -Q spnName
运行命令,了解注册 SPN 的服务帐户。SETSPN -D
运行命令以从服务中删除 SPN。SETSPN -A
运行命令,将 SPN 添加到服务。- 使用
SETSPN -D
移动 SPN,或选择已存在于正确帐户中的 SPN。