无法从SQL server 2008 R2 management studio的一台服务器中的存储过程访问位于另一台服务器中的数据表

无法从SQL server 2008 R2 management studio的一台服务器中的存储过程访问位于另一台服务器中的数据表,sql,sql-server,sql-server-2008,stored-procedures,windows-7,Sql,Sql Server,Sql Server 2008,Stored Procedures,Windows 7,我需要从SQL server 2008 R2 management studio的一台服务器(server1)中的存储过程访问位于另一台服务器(target_server)中的数据表 我已添加目标服务器: EXEC sp_addserver 'target_server' , 'DATA ACCESS', TRUE EXEC sp_serveroption 'target_server' , 'DATA ACCESS', TRUE 但是,当我运行存储过程以访问目标服务器时,出现以下错误: Lo

我需要从SQL server 2008 R2 management studio的一台服务器(server1)中的存储过程访问位于另一台服务器(target_server)中的数据表

我已添加目标服务器:

EXEC sp_addserver 'target_server' , 'DATA ACCESS', TRUE
EXEC sp_serveroption 'target_server' , 'DATA ACCESS', TRUE
但是,当我运行存储过程以访问目标服务器时,出现以下错误:

Login failed for user 'my_login_user_name'.
目标服务器的密码与my server1的登录密码不同。但是,我已成功登录并使用正确的密码将其添加到ManagementStudio

为什么我不能从存储过程访问目标服务器

sp_addserver有点老了(2008年,我相信它只是为了向后兼容sql server 2000才被包括在内)。除非我离得很远,否则请使用SP_addlinkedserver(与SP_addserver的用法类似)的组合来设置连接。(编辑以添加…您的原始sp_addserver应该已经工作,除非您真的愿意,否则重做此步骤毫无意义)

然后使用SP_addlinkedsrvlogin定义用户访问权限:

sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' 
 [ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ] 
 [ , [ @locallogin = ] 'locallogin' ] 
 [ , [ @rmtuser = ] 'rmtuser' ] 
 [ , [ @rmtpassword = ] 'rmtpassword' ] 

如果您喜欢图形而不是文本行…SSMS允许您在类似向导的设置中输入行。在服务器下,您将看到服务器对象>>链接的服务器。“安全”选项卡将允许您定义一个单独的登录/密码,该登录/密码由您用于登录远程服务器的用户帐户定义。例如,如果您希望以只读方式访问该链接服务器,请在该链接服务器上创建一个只读帐户。不确定是否可以…您需要找到具有sysadmin的人员来创建/更改用户帐户。