SQL Server 2008 Windows Auth登录错误:登录来自不受信任的域


110

尝试使用Management Studio连接到SQL Server 2008实例时,出现以下错误:

登录失败。该登录名来自不受信任的域,不能与Windows身份验证一起使用。(Microsoft SQL Server,错误:18452)

我可以使用SQL身份验证登录而不会出现问题。我突然收到了这个错误。我已启用混合模式身份验证。

有人对这个有经验么?

附加信息:Windows 2003 Server上的64位版本的SQL Enterprise Edition


1
Windows登录帐户用于连接到sql服务器是什么?
Gulzar Nazim

1
它是我一直以来一直使用的域名帐户
jinsungy

2
最近是否有任何更改(例如密码更改)?有时凭证被缓存..
古勒扎尔纳济姆

1
最近没有变化..唯一发生的事情只是重启了我们的服务器..
jinsungy

Answers:


49

可能发生这种情况的另一个原因(只是发生在我身上)...是用户的密码已过期。直到我尝试远程访问实际服务器并被提示更改密码后,我才意识到这一点。


刚遇到这个问题。令人惊讶的我仍然能够连接到分析服务器:o
GOTO

可以确认..这也给我造成了同样的问题。更新密码可立即解决连接问题!
wjhguitarman

1
只是对我来说发生了(Win 10),虽然不是我的密码已经过期,但我只是通过'Ctrl-Alt-Del'对其进行了更改。我重新启动,一切都很好。极其烦人的是,更改密码也影响了Outlook和OneDrive的功能。
aSystemOverload

谢谢,挽救了我的性命
user3201809'7

使用Ctrl-Alt-Del(Win10)更改了密码,并开始出现此错误。重新启动并不能解决问题。
Ymagine

38

对我而言,这是在我编辑空白drivers/etc/hosts文件并为本地网站添加条目时发生的,但忽略了添加127.0.0.1 localhost


1
也为我工作。不知何故,我在主机文件中有一些不应存在的条目(我自己没有把它放在那里,也不记得安装任何可以做到这一点的软件)。删除它解决了问题
LazyOne 2012年

2
对于Windows,您可以通过执行rackspace.com/knowledge_center/article/…
oaamados,2015年

1
你救了我的一天!感谢
Houari 2015年

29

此问题是由Active Directory服务器关闭引起的,当然该服务器无法验证Windows帐户。谢谢您的帮助。


18

对于遇到此问题的任何人,我的主机文件中都包含以下内容:

127.0.0.1   localhost
127.0.0.1   customname

我需要它是这样的:

127.0.0.1   localhost
127.0.0.1   localhost   customname

16

“此问题是由Active Directory服务器关闭引起的,当然,该服务器无法验证Windows帐户”

它不是“当然-因为如果AD不可用,则Kerberos身份验证回退到NTLM(域帐户凭据在本地缓存,即使AD / Kerberos不可用,也可以使用它登录)。我想您可能有2个同时发生此故障的条件:

  • SQL Server不是本地的(在另一台计算机上)
  • 信任被配置为“仅Kerberos”

或其他特定的安全网络/服务器/ AD /机器配置


2
我也已经看到本地计算机FWTW上的AD命名服务器出现此问题
Keith Hoffman

1
那么,如果SQL Server不是本地的,该怎么办?
Behnam Heydari '16

在何处以及如何更改“信任”配置(当前为“仅Kerberos”)?
TPAKTOPA

10

我在本地计算机上的服务器实例遇到了此问题,发现这是因为我指向的主机文件中包含“ localhost”以外的内容的127.0.0.1。在我的情况下,有两种方法可以解决此问题:

  1. 清除主机文件中指向127.0.0.1的有问题的条目
  2. 使用“ localhost”代替主机文件中指向127.0.0.1的其他名称

*仅当我在本地机器上运行sql服务器实例并尝试从同一台计算机访问它时,这才对我有用。


10

确保您没有连接到另一个域\用户上的VPN。或者,相反,如果需要的话,请确保连接。


哇,永远都不会想!谢谢!(我在VMWare上使用SSMS连接到MBP上的VPN公司)
jenjenut233 2014年

这对我来说很有帮助。我必须在VPN连接中使用域名。
arni

这是我的问题。我本来想作为答案,却找到了您的第一个。一旦我看到它,就说得很对。谢谢
billpennock

4

我修复了禁用环回检查设置的计算机上的此问题:

  1. 编辑Windows注册表:开始–>运行>注册表编辑器
  2. 导航到:HKLM \ System \ CurrentControlSet \ Control \ LSA
  3. 添加一个名为“ DisableLoopbackCheck”的DWORD值
  4. 将此值设置为1

3

尝试使用RUNAS命令使用其他有效的登录

runas /user:domain\user C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\ssmsee.exe 

runas /user:domain\user C:\WINDOWS\system32\mmc.exe /s \”C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC\”" 

runas /user:domain\user isqlw 

我用同一域中的另一个Windows帐户尝试了此操作,并得到了相同的错误。
jinsungy

尝试获取服务器和客户端事件日志。我想我们需要更多细节。
Gulzar Nazim

3

对我而言,这是因为我没有将帐户添加为想要使用到SQL数据库本身的角色。并且还由于尝试通过复制粘贴问题锁定帐户而输入的密码错误。


3

好吧,完全是我的回答。我是从VM VirtualBox上托管的开发环境中收到此错误的。三台服务器;SharePoint,SQL DB和域控制器。SharePoint服务器无法连接到配置数据库。我仍然可以通过ODBC连接以使用SA帐户进行Sql身份验证,但不能使用Windows身份验证。但是该用户会很乐意登录sql服务器本身上的SSMS。我也从ODBC获得了更好的错误消息,也通过检查sql服务器上的失败登录消息得到了更好的错误消息:

select text from sys.messages where message_id = '18452' and language_id = 1033

不能相信这一点,因为我向我们的企业系统管理员之一寻求帮助,并且他在查看了我发送给他的一些屏幕截图后大约5分钟就诊断出了问题。 问题是域控制器的时钟设置不正确! 无法相信。服务器设置为仅主机联网,因此没有互联网可以与时钟同步。这也解释了为什么在我知道系统正在运行时回滚到较早的快照并不能解决问题。

编辑:在服务器上安装来宾添加将来宾时钟与主机同步。


我今年也遇到过AD身份验证问题,这些问题最终可以追溯到我们的一个域控制器上的时钟设置错误。我不得不使用Wireshark向我们的IT部门证明这是一个网络问题,但是一旦我让他们看...他们确定了时间,一切都很好。
Ty H.

3

jTDS驱动程序上有一个名为USENTLMV2的设置,默认情况下设置为false。在我的数据库软件(DBVisualizer)中将此设置为“ true”即可解决。


3

您可能会看到的另一种情况是,您尝试从更改密码时已经登录的SSMS会话连接到另一台SQL Server。事件序列可能类似于:

  1. RDP到Server-A(您的SQL Server),打开SSMS并登录
  2. RDP到同一域中的Server-B并更改密码
  3. 返回到服务器A上的RDP会话,并通过SSMS尝试将另一个DB添加到现有的AlwaysOn可用性组中。连接到副本时,您会收到“不受信任的域”-登录错误

要解决此问题,只需注销并重新登录


3

您可能会误解您在本地使用的用户名。在Windows 10 Home中就是我的情况。在控制面板中查看用户时,会看到名称usrpc01。但是,当我键入时net config workstation,用户的名称似乎是spc01。似乎有人重命名了用户,但内部名称保持不变。

不知道如何修复Windows用户名(以及下的文件夹名C:\Users,它也指原始内部名称),我在数据库服务器上添加了新的用户accout。


1

我一直试图从域帐户登录到SQL Server 2008。SQL Server 2008托管在不属于域的另一台工作组计算机上。听起来很奇怪,在运行SQL Server 2008的工作组服务器上,我必须转到“系统属性” |“配置”。计算机名称(选项卡)| 更改(按钮)| 计算机名称更改| 更多...(按钮),然后输入“此计算机的主要DNS后缀”(为空白,因此请为您的网络输入所需的后缀),然后选中“在域成员身份更改时更改主要DNS后缀”框。这使Windows身份验证过程在登录SQL Server 2008时完成。


1

我必须使用netonly才能在现代Windows上使用它:

runas /netonly /user:domain\user "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\ssms.exe"



1

我在以下主机文件中输入错误 C:\Windows\System32\drivers\etc

[Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.

确保输入如下内容

127.0.0.1   localhost
127.0.0.1   localhost   servername

1

我正在为指向“ 127.0.0.1”的SQL Server实例使用别名。改为将其更改为“ localhost”即可。


1

如果您的Sql Server在不属于域的服务器上运行,并且在连接字符串中使用具有Integrated Security = True的完全限定域名(例如xyz.mypc.com),则可能必须切换到使用任一IP地址,MachineName(SERVER01)或点(。)(如果是本地托管)。

这对我有用,使用fqdn导致上述错误。


0

为了启用Windows身份验证,两台计算机都必须位于同一域中。为了允许管理工作室通过当前凭证并在sql框中进行身份验证


3
这是不准确的。他们不需要在同一个域中。如果在两个域中都设置了具有相同名称和密码的帐户,则它们可以位于不同的域中。
Cody Schouten 2015年

0

对我来说,我必须从域断开连接(更改工作组/域),然后重新连接。


您是要使用本地帐户连接到工作组中的远程SQL Server吗?只有在同时以登录身份在SQL Server计算机,连接计算机和SQL Server本身中启用了具有相同密码的Guest(或其他通用)帐户时,此方法才有效。
纳季·瓦宁

我的意思是脱离接触,然后重新与域组接触。然后重试使用远程MSSQL上的Windows身份验证(域凭据)登录。
f01

0

另一个可能的原因:在DB Server上新创建的本地帐户具有:“用户必须在下次登录时更改密码”标志。


0

这是为我解决的问题:网络连接属性单击:“ Internet协议版本4(TCT / IPv4)”。点击“属性”按钮。点击“高级”按钮。选择“ DNS”标签。删除“此连接的DNS后缀”中的文本。


0

我也无法远程连接到SQL Server。SQL Server和远程服务器都位于同一域中。几天前有人要求我更改密码。重新启动我试图从中访问SQL Server的SQL Server和远程服务器都对我有用。


0

在我们的案例中,事实是开发人员正在使用自己的帐户运行应用程序池,并重置了密码,但是忘记在应用程序池上进行更改。h ...


0

就我而言,该服务器已在域控制器中禁用。我进入Active目录中的COMPUTERS OU,右键单击服务器,启用它,然后从SQL Server执行gpupdate / force。花了一点时间,但终于奏效了。


0

就我而言,在主机文件中,计算机名称是使用旧IP硬编码的。我用新的IP替换了旧的IP,问题已解决。

主机文件位置

WindowsDrive:\ Windows \ System32 \ drivers \ etc \ hosts

所做的修改 159.xx.xx.xxx MachineName


0

以上都不对我有用。我要做的是:在登录屏幕上的SQL Server Management Studio中,选择选项>>在“网络”部分,将网络协议更改为“命名管道”。

另外,我要使其与<default>设置兼容,必须做的是禁用无线网络(机器也已连接到有线局域网)。


0

我的解决方法是更改​​web.config文件,使其与SQL连接的新服务器名称相关联(IT安全刚刚在开发箱上进行了netdom重命名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.