SQL Server 中的显式错放 SPN 问题
本文可帮助你解决 SQL Server 一致身份验证问题,该问题影响显式错放的服务主体名称 (SPN) 。
症状
如果在连接字符串中指定的 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。