SQL Server 中显式错放的 SPN 问题

本文可帮助你解决影响显式错放服务主体名称(SPN)的 SQL Server 一致性身份验证问题。

现象

如果在连接字符串中指定的 SPN 存在于Microsoft SQL Server 未使用的服务帐户上,则会收到安全支持提供程序接口(SSPI)上下文错误消息。

如果 SPN 未正确注册,可能会收到以下错误消息:

目标主体名称不正确。 无法生成 SSPI 上下文。

如果尝试创建已存在的 SPN,将收到以下错误消息:

找到重复的 SPN,中止操作!

原因

显式错放的 SPN 可能会导致 Kerberos 身份验证中出现问题,并阻止客户端连接到服务。

解决方法

如果遇到显式错放的 SPN,可能需要为服务创建或重新创建 SPN。 若要使用 SETSPN 命令创建或重新创建 SPN,请执行以下步骤:

  1. 运行 SETSPN -L domain\svcacct 命令以列出 SQL Server 服务帐户上的 SPN。
  2. SETSPN -Q spnName运行命令,了解注册 SPN 的服务帐户。
  3. SETSPN -D运行命令以从服务中删除 SPN。
  4. SETSPN -A运行命令,将 SPN 添加到服务。
  5. 使用 SETSPN -D移动 SPN,或选择已存在于正确帐户中的 SPN。

详细信息

SQL Server 中的一致身份验证问题