我有一个使用 SQL 2014 和 Windows Server 2012 R2 的 Alwayson 可用性组设置。组中有 3 个节点。SQL 服务在每个节点上作为托管服务帐户运行(每个服务器 1 个 MSA)。
我正在尝试在每个节点上创建一个链接服务器以指向当前的活动节点。因此,假设这三台服务器称为 Server1、Server2 和 Server3,AlwaysOn 可用性组称为 SQLAAG_PROD。我想创建到 SQLAAG_PROD 的链接服务器。
我能够为每个单独的节点创建一个链接服务器(例如,带有到 server2 和 Server3 的链接的 Server1),并且使用安全选项可以正常工作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
当直接连接到节点时,我得到 KERBEROS,但是如果我连接到 SQLAAG_PROD 并运行相同的查询,那么我得到 NTLM
终于在这里找到了一个教程:http: //www.derekseaman.com/2014/10/sql-2014-always-ag-pt-12-kerberos.html
对我来说,问题是我需要针对用于运行 SQL 数据库引擎的托管服务帐户注册可用性组的 SPN(链接中的第 8 步)。一旦我这样做并重新启动集群中的所有 3 台服务器,一切正常。