SQL Server 2008错误18452登录名来自不受信任的域,无法与Windows身份验证一起使用

SQL Server 2008错误18452登录名来自不受信任的域,无法与Windows身份验证一起使用,sql,windows,sql-server-2008,active-directory,windows-authentication,Sql,Windows,Sql Server 2008,Active Directory,Windows Authentication,我在想到底发生了什么事。以下是我们的设置: 我们有四台SQL服务器,它们彼此进行复制 我们将一个新用户添加到Windows Active Directory,并将其添加到SQL Server中的一个组中,该组已使用多年 新用户尝试使用Windows Authentication进行身份验证时,会在主题行中返回该错误。但是,以前在Active directory中的任何用户都可以正常工作 有一次我让SQL Server“赶上”,因为我们有一组用户因为这个错误而无法登录。我对SPN做了一些更改,最终

我在想到底发生了什么事。以下是我们的设置: 我们有四台SQL服务器,它们彼此进行复制

我们将一个新用户添加到Windows Active Directory,并将其添加到SQL Server中的一个组中,该组已使用多年

新用户尝试使用Windows Authentication进行身份验证时,会在主题行中返回该错误。但是,以前在Active directory中的任何用户都可以正常工作

有一次我让SQL Server“赶上”,因为我们有一组用户因为这个错误而无法登录。我对SPN做了一些更改,最终没有人可以登录。然后我意识到SPN应该是什么样子并修复了它。然后我猜一些神奇的事情发生了,那些用户能够进行身份验证。我认为这是固定的,但显然不是因为我们必须添加一个新用户,他们无法验证

有趣的是,用户可以使用四个SQL服务器中的三个进行身份验证。只有这一台服务器工作不正常。我为此SQl server上的SQl服务设置了两个SPN

它们看起来像-

MSSQLSvc/[servername].[domain]。本地:1433

MSSQLSvc/[servername]:1433

它们实际上已注册到我们用于SQL Server的服务帐户。有趣的是,我找不到在任何地方工作的服务器的SPN

任何帮助都将不胜感激

编辑:另外,另一点需要注意的是,如果我尝试将用户直接添加为SQL server的登录名。我右键单击登录,单击添加登录,然后单击搜索。然后我输入[Domain]\[Username]并单击检查名称。它验证名称是否正确。然后我点击OK。然后再次单击“确定”,它会给出错误消息Windows NT用户或组“[Domain]\[Username]”未找到。再次检查名称

我认为它是固定的,但显然不是因为我们必须添加一个 新用户,他们无法进行身份验证

用户必须重新登录才能选择新组。否则,它的kerberos票证仍在其PAC中使用旧的组成员信息

它们实际上已注册到我们使用的服务帐户 SQL服务器。有趣的是,我找不到的SPN 在任何地方工作的服务器

我认为发生的情况是,您有一台SQL Server的SPN设置正确,而其他三台SQL Server根本没有SPN设置。因此,您将在这个特定的服务器上使用Kerberos,而在其他三个服务器上使用NTLM

如前所述,当您使用Kerberos时,您必须使用一些工具清除票据,或者必须重新登录以获取新的组成员资格。您也可以尝试锁定屏幕,然后解锁它。如果我没记错的话,这也会刷新记录单


与Kerberos不同,NTLM不携带组成员HSIP数据。在SQL Server使用NTLM对用户进行身份验证后,它将找到经过身份验证的用户的组成员身份,包括您刚才添加的新组。

虽然这并不是确切的答案,但它确实将我引向了正确的方向。它向我指出了一个事实,即它试图使用不同的方式进行身份验证。因此,我所需要做的就是在active directory中,我允许信任此sql服务器进行kerberos委派。我能够添加一个新用户,以他们的身份登录,并立即使用SQL Server进行身份验证。谢谢谢谢你接受我的回答。我只想澄清一件事。将SQL Server授予kerberos委派的信任意味着您允许SQL Server模拟最终用户,并且允许SQL Server使用模拟令牌与网络上的另一台服务器通信。也许,我还是不太理解你的处境。您通常不需要将此权限授予SQL Server。通常,这在web服务器上是必需的,因为web服务器需要模拟最终用户,并使用最终用户身份与SQL server联系。哦…嗯,很有趣。不知道发生了什么事。但是,是的,从你最初的回答来看,我已经添加了用户,然后以他们的身份登录,但仍然不起作用。事实上,这台SQL Server似乎没有获得用户的更新列表。但在事件日志中很奇怪,因为失败时用户名将为空。好像连我想说的人都认不出来。我能想到的唯一一件事是,该服务器位于域中,但不知何故,它在设置中已损坏?我想到的一件事是,您可能拥有一个具有多个域控制器的域。尚未将组成员身份信息复制到另一个域控制器。因此,即使您重新登录,它仍然无法获取新的组信息。然而,从你所说的,这听起来确实像是时间敏感的。我相信这与“kerberos委派”设置无关。就在你花了几个小时触摸这个设置和那个设置之后,组成员身份终于被复制了。我相信我们有两个域控制器。但我认为我们的SQL Server将使用主服务器,而不是像所有其他SQL Server一样使用辅助服务器。