我刚刚安装了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身份验证连接似乎工作正常。
答案 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