Windows Server 2012 R2 有时无法通过域 (RDP、SQL Server) 验证登录

Windows Server 2012 R2 有时无法通过域 (RDP、SQL Server) 验证登录

我们目前的设置如下:

  1. 运行 Windows Server 2012 R2 的 Active Directory 域控制器服务器
  2. 运行 Windows Server 2012 R2 的 SQL Server 2014 数据库服务器(在 1 中加入域)。使用 Microsoft 故障转移群集运行主动备用群集。
  3. 运行 Windows Server 2012 R2 的应用程序服务器(在 1. 中加入域)

平时没什么问题,突然间应用服务器上的应用程序开始报错。检查数据库服务器中的事件日志,可以发现当应用服务器尝试使用 Windows 身份验证(域帐户)登录 SQL 服务器时,会报以下错误:

事件 ID 17806(MSSQLSERVER):

在建立集成安全性连接时,SSPI 握手失败,错误代码为 0x80090311,状态为 14;连接已关闭。原因:AcceptSecurityContext 失败。Windows 错误代码指示失败的原因。无法联系任何机构进行身份验证。[客户端:IP_of_App_Server]

事件 ID 18452(MSSQLSERVER):

登录失败。登录来自不受信任的域,无法与 Windows 身份验证一起使用。[客户端:IP_of_App_Server]

然后,我将使用域帐户测试远程桌面到数据库服务器,它会失败并出现错误,抱怨服务器无法联系 AD 来验证帐户,并且由于强制执行网络级别身份验证,因此不会登录。还尝试使用域帐户登录备用数据库节点,没有问题。

我仍然可以使用本地管理员登录,并检查系统事件日志会发现以下错误:

事件 ID 5719 (NETLOGON):

此计算机无法与域中的域控制器建立安全会话,domain_name原因如下:当前没有可用的登录服务器来处理登录请求。这可能会导致身份验证问题。请确保此计算机已连接到网络。如果问题仍然存在,请联系您的域管理员。

附加信息 如果此计算机是指定域的域控制器,它将与指定域中的主域控制器模拟器建立安全会话。否则,此计算机将与指定域中的任何域控制器建立安全会话。

通常,一段时间后,此问题会自行解决。但是,今天早上发生了一个持续一个多小时的事件,最后我通过将 SQL 服务故障转移到另一个群集节点,然后立即将其故障转移回来解决了此问题。

我尝试在线查找,发现大多数问题都是由网络问题引起的。我可以确认,无论何时发生问题,我的数据库服务器仍然可以 ping 并解析 Active Directory 服务器。我认为问题与操作系统有关。我还发现它可能与 KB3002657 有关服务器故障链接,我发现它已安装。但是,从帖子和 Microsoft KB 中读到,似乎此补丁的问题应该会一直影响服务器,并且似乎与 Microsoft Server 2003 更相关。

我目前对这个问题没有任何想法,如果有人能对此有所启发,我将不胜感激,谢谢。

答案1

我们的配置完全相同,只有一个区别,我们在 Windows 故障转移群集上使用 2 个 SQL 2016 版本,但问题相同。当我为 SQL Server 服务域帐户的 SQL 侦听器添加 SPN 记录时,我的问题就消失了,例如侦听器 SQL-listener1 的 2 个 SPN:MSSQLSvc/SQL-listener1.domain.com、MSSQLSvc/SQL-listener1.domain.com:1433

相关内容