sp_execute访问其他数据库/服务器时如何管理凭据?



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

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

当我打电话时:

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

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

虽然我不想只给你一个链接,但sp_addlinkedserverlogin的 BOL 文档(我假设可能是一些相关文章(涵盖了它,我认为应该回答你的问题。

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

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

最新更新