当访问另一个数据库/服务器时,sp_execute如何管理凭据?

时间:2018-09-28 18:47:53

标签: sql-server tsql sp-executesql

我在两个不同的服务器上有两个数据库,它们具有不同的凭据来访问它们。

我需要从第一个数据库的上下文中调用第二个数据库中的存储过程。但是,出于安全目的,两个数据库之间的用户并不相同。

当我打电话时:

DECLARE @OtherServer varchar(100) = 'MySecondServer'
DECLARE @OtherDatabase varchar(100) = 'MySecondDatabase'
DECLARE @sql nvarchar(4000) = N'SELECT * FROM ['+@OtherServer +'].['+@OtherDatabase +'].dbo.Customer_Info'
EXEC sp_executesql @sql

如果与我连接到第一个数据库的方式不同,如何指定要传递的用户名和密码?

1 个答案:

答案 0 :(得分:0)

尽管我不想只给您一个链接,但是sp_addlinkedserverlogin的BOL文档(而且我认为可能是一些相关文章)涵盖了我认为应该回答您问题的深度。

对于远程服务器,呼叫就像其他任何请求一样。这是链接服务器的定义,它是控制与其连接的凭据的关联角色。

具体来说,请看示例“ B”,该示例讨论将链接的服务器与特定用户相关联。