创建链接服务器到 AlwaysOn 可用性组侦听器

Gre*_*reg 5 authentication sql-server linked-server availability-groups sql-server-2014

我有一个使用 SQL 2014 和 Windows Server 2012 R2 的始终可用组设置。组中有 3 个节点。SQL 服务在每个节点上作为托管服务帐户运行(每个服务器 1 个 MSA)。

我正在尝试在每个节点上创建一个链接服务器以指向当前的活动节点。因此,假设这三个服务器称为 Server1、Server2 和 Server3,而 AlwaysOn 可用性组称为 SQLAAG_PROD。我想创建到 SQLAAG_PROD 的链接服务器。

我能够为每个单独的节点创建一个链接服务器(例如 Server1 与 server2 和 Server3 的链接),并且使用安全选项可以正常工作Be made using the login's current security context

但是,当我尝试为组侦听器创建链接服务器时,我得到了 Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON

如果我将安全模式更改为对当前活动服务器使用 SA 密码,则一切正常,但出于明显的安全原因,这不是可接受的解决方案。

我已经阅读了很多关于需要设置 SPN 并允许帐户进行委派的内容。我Trust this computer for delegation to any service (Kerberos only)在 Active Directory 中打开了 SQLAAG_PROD 对象,但仍然有同样的问题。

有没有人以前见过这个,和/或是否有关于如何设置的指南?

===更新===

不确定它是否有帮助,但是当我跑步时

select auth_scheme from sys.dm_exec_connections where session_id=@@SPID
Run Code Online (Sandbox Code Playgroud)

当直接连接到节点时,我得到 KERBEROS,但是如果我连接到 SQLAAG_PROD 并运行相同的查询,那么我得到 NTLM

Gre*_*reg 3

终于在这里找到了一个教程:http://www.derekseaman.com/2014/10/sql-2014-always-ag-pt-12-kerberos.html

对我来说,问题是我需要针对用于运行 SQL 数据库引擎的托管服务帐户注册可用性组的 SPN(链接中的步骤 8)。一旦我这样做并重新启动集群中的所有 3 个服务器,一切就都正常了。