我的基础设施如下图所示。
Web 服务器 1 位于 Windows 域之外。Web 服务器 2 位于 Windows 域内。
SQL Server 1 和 2 都在域内。
存在从 SQL Server 1 到 SQL Server 2 的链接服务器连接。
两个 SQL Server 都只接受 Windows 身份验证,而不接受 SQL 身份验证。
两个 SQL Server 都具有具有不受约束委派的 Kerberos SPN 设置。
Web Server 2 上的域用户在 SQL Server 1 和 SQL Server 2 上都配置了 SQL 登录名,并且可以通过链接服务器查询 SQL Server 1 和 SQL Server 2 上的数据。
Web Server 1 上的本地用户具有在 SQL Server 1 和 SQL Server 2 上配置的相同名称和密码的本地登录名,并且可以查询 SQL Server 1 上的数据,但不能通过链接服务器查询 SQL Server 2 上的数据。SQL Server 日志中出现以下错误:
用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。原因:找不到与所提供的名称匹配的登录名。
问题:是否可以使 Windows 域之外的 Web Server 1 通过 SQL Server 1 上的链接服务器连接成功查询来自 SQL Server 2 的数据?如果是这样,怎么办?
这是一个典型的双跳问题,但在这种情况下,您使用的是 NTLM 而不是 Kerberos(因为它位于域之外)。因此不可能进行双跳,因为 NTLM不支持它。
选项有: