SQL Server 2008 Windows 身份验证登录错误:登录来自不受信任的域

Posted

技术标签:

【中文标题】SQL Server 2008 Windows 身份验证登录错误:登录来自不受信任的域【英文标题】:SQL Server 2008 Windows Auth Login Error: The login is from an untrusted domain 【发布时间】:2010-10-07 12:00:12 【问题描述】:

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

登录失败。登录来自 不受信任的域,无法使用 使用 Windows 身份验证。 (Microsoft SQL Server,错误:18452)

我可以毫无问题地使用 SQL 身份验证登录。我突然收到这个错误。我打开了混合模式身份验证。

有人有这方面的经验吗?

附加信息: 64 位版本的 SQL 企业版 在 Windows 2003 服务器上

【问题讨论】:

连接sql server的windows登录账号是什么? 它是我一直使用的域帐户 最近是否有任何更改,例如更改密码?有时凭据会被缓存.. 最近没有变化.. 唯一发生的事情就是我们的服务器重新启动.. 【参考方案1】:

如果您的 Sql Server 运行在不属于域的服务器上,并且在连接字符串中您使用了 Integrated Security=True 的完全限定域名(例如 xyz.mypc.com),您可能需要切换在本地托管的情况下使用 IP 地址、MachineName (SERVER01) 或点 (.)。

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

我为指向“127.0.0.1”的 SQL Server 实例使用了别名。 将其更改为“localhost”就可以了。

【讨论】:

【参考方案4】:

我在禁用环回检查设置的机器上修复了这个问题:

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

【讨论】:

【参考方案5】:

我在 C:\Windows\System32\drivers\etc 下的 hosts 文件中输入错误

[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

【讨论】:

【参考方案6】:

您可能会看到这种情况的另一种情况是,您在更改密码时尝试从已登录的 SSMS 会话连接到另一个 SQL 服务器。事件顺序可能类似于:

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

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

【讨论】:

【参考方案7】:

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

【讨论】:

也为我工作。不知何故,我在 hosts 文件中有一些不应该存在的条目(我自己没有把它放在那里,也不记得安装任何可以做到的软件)。删除它解决了问题 对于 Windows,您可以通过此操作更新此文件 rackspace.com/knowledge_center/article/… 你拯救了我的一天!谢谢【参考方案8】:

当我想在另一台 PC 上运行我的项目时,我遇到了同样的问题。从

更改连接字符串
Data Source=JOHN-PC\JJ;Initial Catalog=MyDatabase;Integrated Security=True;Pooling=False

Data Source=JOHN-PC\JJ;Initial Catalog=MyDatabase;Persist Security Info=True;User ID=MyUserName;Password=MyUserPassword

帮了我。

这是原始答案的链接:Login failed.The login is from an untrusted domain...

希望这会有所帮助。

【讨论】:

【参考方案9】:

对于遇到此问题的其他人,我的 hosts 文件中有此内容:

127.0.0.1   localhost
127.0.0.1   customname

我需要它是这样的:

127.0.0.1   localhost
127.0.0.1   localhost   customname

【讨论】:

【参考方案10】:

我的解决方法是更改​​ web.config 文件以与我的 SQL 连接的新服务器名称相关联(IT 安全部门刚刚对我的开发框进行了网络重命名。

【讨论】:

【参考方案11】:

确保您没有在某处使用“Trusty_Connection=yes”。我遇到了同样的问题,我只需将其设置为“否”即可解决。

【讨论】:

【参考方案12】:

以上都不适合我。我必须做的是: 在登录屏幕上的 SQL Server Management Studio 中,选择选项 >> 在网络部分将网络协议更改为命名管道。

另外,要使其与<default> 设置一起工作,我必须禁用无线网络(机器也连接到有线局域网)。

【讨论】:

【参考方案13】:

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

【讨论】:

【参考方案14】:

另一个原因> 有人更改了默认 SQL 用户的密码

这在几分钟前发生在我身上,通过切换到一个新的域控制器......

【讨论】:

刚刚发生在我身上。我不久前更改了密码并忘记了(凭据已保存)【参考方案15】:

在我的例子中,在主机文件中,机器名称是用旧 IP 硬编码的。 我用新IP替换旧IP,问题解决了。

主机文件位置

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

修改完成 159.xx.xx.xxx 机器名

【讨论】:

【参考方案16】:

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

【讨论】:

【参考方案17】:

在我们的例子中,开发人员在他自己的帐户下运行应用程序池,并重置了他的密码但忘记在应用程序池上更改它。呃……

【讨论】:

【参考方案18】:

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

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

【讨论】:

【参考方案19】:

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

【讨论】:

【参考方案20】:

确保您没有连接到其他域\用户上的 ***。或者,相反,如果需要,请确保您连接。

【讨论】:

哇,没想到!!谢谢! (我在 MBP 上连接到公司 ***,在 VMWare 上使用 SSMS) 这对我有帮助。我必须在 *** 连接中使用域名。 这是我的问题。我正要留下它作为答案,但找到了你的第一个。一旦我看到它,它就非常有意义。谢谢【参考方案21】:

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

【讨论】:

【参考方案22】:

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

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

这不能归功于我,因为我向我们的一位企业系统管理员寻求帮助,他在大约 5 分钟内查看了我发送给他的几张屏幕截图后诊断出问题。 问题是域控制器的时钟设置不正确!不敢相信。服务器设置为仅主机网络,因此没有互联网来同步时钟。这也解释了为什么当我知道系统正在工作时回滚到较早的快照并没有解决问题。

编辑:在服务器上安装 Guest Additions 会使访客时钟与主机同步。

【讨论】:

我今年也遇到了 AD 身份验证问题,最终追溯到我们的一个域控制器上的错误时钟设置。我不得不使用 Wireshark 向我们的 IT 部门证明这是一个网络问题,但一旦我让他们查看......他们修好了时钟,一切都很好。【参考方案23】:

您需要先启用sa账户,并使用sa账户登录您的SQL管理工作室(请选择SQl Server认证)。

用sa账号登录后,进入security,右击logins,选择new login,选择SQL Server authentication,创建用户名(无/或任何其他特殊字符,只是一个名称),然后给它一个密码,确认密码并在该页面的底部选择您的默认数据库。

转到logins,右键单击您创建的用户,然后单击properties

转到Server Roles 并选择您要为您创建的用户分配的角色。

点击OK并返回login properties,点击User Mapping,双击您要映射此用户的数据库,然后在底部窗口中选择该数据库的数据库角色成员身份。

【讨论】:

OP 已经声明他可以使用 SQL 身份验证登录,因此您的解决方案将无济于事。他还更新了最初的帖子,并表示该问题是由 AD 服务器停机引起的。【参考方案24】:

还有一个可能的原因: 在数据库服务器上新创建的本地帐户设置了:“用户必须在下次登录时更改密码”标志。

【讨论】:

【参考方案25】:

我的本​​地计算机上的服务器实例出现此问题,发现这是因为我在主机文件中指向 127.0.0.1 时使用的不是“localhost”。就我而言,有两种方法可以解决此问题:

    清除 hosts 文件中指向 127.0.0.1 的违规条目 使用“localhost”而不是hosts文件中指向127.0.0.1的其他名称

*这只适用于我在本地机器上运行 sql server 实例并尝试从同一台机器访问它时。

【讨论】:

【参考方案26】:

只需从连接字符串中删除Trusted_Connection=True 属性即可。

【讨论】:

OP 明确指出登录来自不受信任的域。关闭“Trusted_Connection”不会做任何事情。除此之外,当使用 SQL Server Management Studio 时,您通常只需输入凭据,而不是建立连接字符串。【参考方案27】:

我更换了连接字符串,它开始工作了

来自

main_sqlconnection = New SqlConnection("Data Source=Server1\SQLEXPRESS;Initial Catalog=Master;Trusted_Connection=True")

main_sqlconnection = New SqlConnection("Data Source=Server1\SQLEXPRESS;Initial Catalog=Master;User ID=ARM;Password=1;")

我在 Microsoft SQL Server Management Studio 中创建了帐户 User ID=User;Password=1;:单击安全并添加新用户。

【讨论】:

这绝对有效。不幸的是,这违反了我工作的政策。 它也没有使用集成身份验证。【参考方案28】:

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

【讨论】:

【参考方案29】:

“问题是由于 Active Directory 服务器宕机导致的,它当然无法验证 Windows 帐户”

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

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

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

【讨论】:

我在本地机器 FWTW 上也看到了 AD 命名服务器的这个问题 那么,SQL server 不在本地怎么办? 在哪里以及如何更改“信任”配置,目前是“仅限 Kerberos”?【参考方案30】:

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

【讨论】:

您的意思是使用本地帐户连接到工作组中的远程 SQL Server 吗?这只有在 SQL Server 机器、连接机器和 SQL Server 本身都启用了具有相同密码的访客(或其他一些常见)帐户作为登录时才有效。 我的意思是退出然后重新加入域组。然后在远程 MSSQL 上使用 Windows 身份验证(域凭据)重试登录。

以上是关于SQL Server 2008 Windows 身份验证登录错误:登录来自不受信任的域的主要内容,如果未能解决你的问题,请参考以下文章

windows server 2012 可以安装sql2008 吗

windows 2012 r2怎么安装sql server 2008 r2

Windows Server 2008安装SQL Server 2008

windows server 2008 可以装sql server2012 吗

windows server2012 r2能安装sqlserver2008 R2吗

SQL Server2012在 windows server2008上安装需要啥样的.net环境?