如何使用 Windows 身份验证使链接服务器正常工作?

Chr*_*cia 25 sql-server-2008 authentication sql-server linked-server kerberos

我正在尝试在域环境中使用“使用登录名的当前安全上下文制作”将链接服务器连接到在另一台服务器上创建的 ServerA,即 ServerB。我读到我需要为在每台服务器上运行 SQL Server 的服务帐户创建 SPN 才能启用 Kerberos。我已经这样做了,现在两者都显示身份验证方案是 Kerberos,但是,我仍然面临错误:

"Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'".
Run Code Online (Sandbox Code Playgroud)

在 Active Directory 中,我可以看到 ServerB 的服务帐户被信任用于委派 MSSQLSvc,但我注意到 ServerA 的服务帐户尚未启用“信任此用户进行委派”。目标服务器是否也需要启用该选项?要能够使用当前的 Windows 登录名来使用链接服务器,还需要什么吗?

RLF*_*RLF 26

从您的桌面到您正在调用的服务器的链中的每台机器都必须启用 Kerberos,以便信任通过第一跳。所以,是的,服务器需要信任用户进行委派。

“用户'NT AUTHORITY\ANONYMOUS LOGON' 登录失败”几乎总是表示存在委托问题。

  • 您的 Windows 帐户必须有权访问 ServerA 和 ServerB。
  • 您不能设置“帐户是敏感的,不能被委派”。
  • ServerA 和 ServerB 都必须注册自己的 SPN。
  • 服务器必须通过 TCP/IP 或命名管道连接。

提供更多详细信息的 SQL Server 联机丛书文章是“为委派配置链接服务器”:http : //msdn.microsoft.com/en-us/library/ms189580(v=sql.105).aspx