我们最近在Windows 2016 / SQL Server 2016环境中迁移到Windows 10。据说链接服务器的设置与旧网络相同,但以下sqlcmd不再有效:
sqlcmd -S DBServer1 -q"Insert into DBServer2.Customers.dbo.Table2 (Field2) Select Field1 From Vendors.dbo.Table1"
失败:
Msg 18456,Level 14,State1,Server Database1,Line 1登录失败,用户'NT AUTHORITY \ ANONYMOUS LOGON'
服务器和客户端位于同一个域中。如果代码是从(非数据库)服务器运行的,则它可以正常工作。
此外,如果我在Windows 10客户端计算机上打开SSMS并运行查询,则上述sqlcmd将在命令窗格中正常执行,直到重新启动计算机或经过一段时间。
在SQL Server上设置SA登录不是一种选择。需要配置什么才能使sqlcmd命中链接服务器在域中使用Windows身份验证?
对于SQLCMD,您需要使用-E
进行Windows身份验证或-UYourLogin -PYourPassword