背景
我们正在执行服务器迁移。在此过程中,已创建新的服务器和服务帐户。我遇到了两个问题,我认为这些问题与 SPN 有关:
我创建了一些 SQL 链接服务器(使用“当前安全上下文”,即 Windows 身份验证),但出现了错误
Login Failed for user NT AUTHORITY\ANONYMOUS LOGIN
,但只有当我从客户端使用它时才会出现错误(当我从服务器连接使用它时不会出现错误)。有人使用双跳吗?我们设置了一个 Web 应用程序,据我所知,它在 Kerberos 下无法运行(只是提示登录然后失败),但在 NTLM 下可以运行
实际问题
因此,我想尝试找出 AD 中究竟存在哪些 SPN,但我有两个问题/困惑:
问题 1:
当我打字时SetSPN -L MyDomain\MyServiceAccount1
我得到
Ldap 错误(0x22 - 无效 DN 语法):ldap_search_s
我该如何解决这个问题?有没有 AD 浏览工具可以用来枚举这个?我猜是因为有一个它无法处理的无效字符(里面有一个,$
但这肯定很常见吧?)
问题 2:
当我检查旧服务器时,我输入了以下两行内容:
SetSPN -L ServerNameZ
我获得了默认 SPN 的列表,但是没有 SQL Server
IE
主机/服务器名称 Z
HOST/服务器名称Z.域.本地
当我输入SetSPN -L MyDomain\MyOldServiceAccount
我获得了 SQL Server SPN:
MSSQLSvc/ServerNameZ.domain.local:63267
MSSQLSvc/服务器名称Z.域.本地:COL1
MSSQLSvc/ServerNameZ.domain.local:59082
MSSQLSvc/服务器名称Z.域.本地:COL2
为什么 SQL Server SPN 没有出现在第一个以服务器为中心的列表中?这难道不是要列出全部SPN 针对服务器吗?