我需要将数据从一台服务器上的表复制到另一台服务器上的同一张表。我试过这个:
sp_addlinkedserver 'server1'
INSERT INTO [server2].[R2Op].dbo.[RefR2Ops]
SELECT * FROM server1.[R2Op].dbo.[RefR2Ops]
但我在第二条语句中遇到错误:
用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。
你能告诉我如何解决这个问题吗?谢谢。
我需要将数据从一台服务器上的表复制到另一台服务器上的同一张表。我试过这个:
sp_addlinkedserver 'server1'
INSERT INTO [server2].[R2Op].dbo.[RefR2Ops]
SELECT * FROM server1.[R2Op].dbo.[RefR2Ops]
但我在第二条语句中遇到错误:
用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。
你能告诉我如何解决这个问题吗?谢谢。
答案就在那里。您没有授予本地服务用于登录远程服务器的权限。您的命令在 NT AUTHORITY\ANONYMOUS LOGON 的权限下默认运行。
您需要指定用户凭据才能访问链接服务器
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
[ , [ @useself = ] 'useself' ]
[ , [ @locallogin = ] 'locallogin' ]
[ , [ @rmtuser = ] 'rmtuser' ]
[ , [ @rmtpassword = ] 'rmtpassword' ]
如果两台服务器都在同一个 ADS 域中,并且您的登录名在两台服务器上都存在,您可能必须添加:
EXEC sp_addlinkedsrvlogin 'server1', 'true'
否则检查将在哪个安全上下文中建立与链接服务器的连接。