SQL Server 2008 - 登录失败。登录来自不受信任的域,不能与Windows身份验证一起使用

时间:2009-05-13 15:35:23

标签: sql-server security sql-server-2008 dns

我刚刚安装了SQL Server 2008 Developer Edition,我正在尝试使用SQLCMD.exe进行连接,但是我收到以下错误:

H:\>sqlcmd.exe -S ".\SQL2008"

Msg 18452, Level 14, State 1, Server DEVBOX\SQL2008, Line 1

Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.

SQL Server实例配置为使用SQL Server和Windows身份验证模式。如果我指定-U sa然后我可以成功登录,但我想使用Windows身份验证。使用SSMS与Windows身份验证连接似乎工作正常。

8 个答案:

答案 0 :(得分:6)

我遇到了这个问题,这是因为运行应用程序的计算机不受信任,因为活动目录在域上进行委派。如果它是在应用程序池标识DOMAIN_application.environment下运行的.net应用程序,那么除非机器受信任,否则身份不能调用SQL。

答案 1 :(得分:5)

您没有将任何凭据传递给sqlcmd.exe

因此,它尝试使用Windows登录凭据对您进行身份验证,但您不能让SQL Server设置为接受这些凭据...

安装时,您必须提供服务器管理员密码(对于sa帐户)

...试

sqlcmd.exe -U sa -P YOUR_PASSWORD -S ".\SQL2008"

供参考, 更多细节here ......

答案 2 :(得分:3)

在我的情况下,此错误是由重命名我的客户端计算机引起的。我使用了一个超过13个字符的新名称(尽管有警告),这导致NETBIOS名称被截断并且与整个机器名称不同。一旦我将客户端重新命名为更短的名称,错误便消失了。

答案 3 :(得分:2)

试过这个:

H:>“C:\ Program Files \ Microsoft SQL Server \ 90 \ Tools \ Binn \ sqlcmd.exe”-S“。\ SQL2008” 1个GT;

它的工作原理..(我的路径中有Microsoft SQL Server \ 100 \ Tools \ Binn目录)。

仍然不确定为什么SQL Server 2008版本的SQLCMD不起作用..

答案 4 :(得分:1)

您的错误实际上是在说“您正在尝试使用Windows身份验证,但您的登录不是来自受信任的域”。这很奇怪,因为你正在连接本地机器。

也许您使用本地帐户而不是域帐户登录Windows?确保您使用的域帐户登录,该帐户也是SQL2008实例上的SQL Server主体。

答案 5 :(得分:0)

您是否指定了用户名和密码才能登录?你完整的命令行究竟是什么?

如果您在自己的盒子上运行,则可以指定用户名/密码,或使用-E参数登录Windows凭据(如果在SQL Server安装中允许这些凭据)。

马克

答案 6 :(得分:0)

我也遇到了这个错误,虽然我的问题是我通过我的虚拟机在两个公司网络之间切换,具有不同的访问凭据。我必须运行命令提示符:

ipconfig /renew

在此之后我的网络问题得到解决,我可以再次连接到SQL。

答案 7 :(得分:0)

刚刚找到这个主题,并在此处发布了另一个答案(复制如下): https://stackoverflow.com/a/37853766/1948625

特别是在这个问题上,如果点" ."在命令行的-S值中使用的值与127.0.0.1相同,那么它可能与另一个问题的连接字符串相同。请改用主机名,或检查您的主机文件。

老问题,我的症状略有不同,但同样的错误。我的连接字符串是正确的(集成安全性,我不提供用户和密码),data source设置为127.0.0.1。它运作良好多年。

但最近我在静态主机文件中添加了一行用于测试目的(C:\Windows\System32\drivers\etc\hosts

127.0.0.1           www.blablatestsite.com

删除此行并且错误消失。

我从这篇文章(https://support.microsoft.com/en-gb/kb/896861)中得到了一个线索,其中讨论了主机名和环回。

其他可能的修复(如果您需要在hosts文件中保留该行)是在连接字符串的MYSERVER01中使用主机名(如127.0.0.1)而不是data source