Как sp_execute управляет учетными данными при доступе к другой базе данных / серверу? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть две базы данных на двух разных серверах с разными учетными данными для доступа к ним.

Мне нужно вызвать хранимую процедуру во второй базе данных из контекста первой базы данных.Однако в целях безопасности пользователи не являются общими для двух баз данных.

Когда я звоню:

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 голосов
/ 29 сентября 2018

Хотя я очень не хочу давать вам ссылку, документация BOL для sp_addlinkedserverlogin (и я полагаю, что, вероятно, некоторые из связанных статей) охватывает ее до глубины, я думаю, что должна ответить на ваш вопрос.

Для удаленного сервера вызов аналогичен любому другому запросу.Это определение связанного сервера и связанные с ним роли, которые управляют учетными данными, с которыми он соединяется.

В частности, посмотрите на пример «B», в котором обсуждается привязка связанного сервера к определенному пользователю.

...