SQL Server 中的显式错放 SPN 问题

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

症状

如果在连接字符串中指定的 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 中的一致身份验证问题