sqlcmd:用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败

4
我有特权连接到test2上的数据库,但如果我使用相同的帐户远程桌面到另一台主机并在那里运行以下命令:
SQLCMD -E -S test2 -d test -i Silo.sql -b -v
会出现以下错误信息:
(1 rows affected) Msg 18456, Level 14, State 1, Server test\colo, Line 1 Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
为什么会出现这种情况,有什么解决办法?
奇怪的是,它抱怨用户是“NT AUTHORITY\ANONYMOUS LOGON”,但实际上我使用的是自己的帐户。
3个回答

2
如果您请求以下内容,则会出现此错误:
  1. 连接到远程服务器
  2. 本地服务器在域中
  3. 远程服务器不在域中

连接将不会使用您的域登录(目标上未知),而是使用ANONYMOUS。

  • 查看您的错误:

(1 行受影响) Msg 18456,级别 14,状态 1,Server test\colo,第 1 行 登录失败,用户为 'NT AUTHORITY\ANONYMOUS LOGON'。

相反,似乎您的脚本的一部分正在访问从testtest\colo的链接服务器对象,并且您尚未正确设置链接服务器登录。 如果testtest\colo不在同一个域中,则需要使用sp_addlinkedsrvlogin设置链接服务器登录映射。


我正在使用 VPN,因此本地服务器不在域中,但远程桌面连接在域中,目标数据库服务器也在域中,所以您认为这是根本原因吗?有什么解决方法? - Daniel Wu
1
您已连接到“test2”,但它正在访问“test\colo”。这两者之间有什么关系? - RichardTheKiwi

0

登录SQLCMD并运行以下命令。

EXEC master..sp_addsrvrolemember @loginame = N'NT SERVICE\MSSQLSERVER', @rolename = N'sysadmin' go


0

这是SQL Server 2005及更高版本已知的问题。请参阅SQL Server产品博客。

"SQL链接服务器查询失败,显示“用户登录失败…”"

除了完全重新配置您的域和所有服务器之外,没有真正的解决方法。

真正的解决方法是不使用Windows身份验证,并在链接服务器配置中手动输入SQL Server凭据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接