Запрос данных через связанный сервер из базы данных SQL Azure RLS

Я хочу получать данные через связанный сервер из SQL Azure, который использует безопасность на уровне строк. Проблема заключается в том, что запрос не возвращает никаких данных.

Если я выполняю тот же запрос непосредственно в SQL Azure, я получаю данные.

{SQL-запрос для связанного сервера} — не работает

EXEC SP_SET_SESSION_CONTEXT @key=N'TenantId', @value='XXX'
SELECT * FROM [AHPRO].[AllHoursProduction].[dbo].[User]

{SQL-запрос для SQL Azure} – работает

EXEC SP_SET_SESSION_CONTEXT @key=N'TenantId' ,@value='XXX'
select * from [AllHoursProduction].[dbo].[User]

person xUrko    schedule 08.09.2019    source источник


Ответы (1)


При использовании Linked Server у вас есть локальный сеанс и удаленный сеанс. Вы устанавливаете свойство в своем локальном сеансе, и оно не влияет на ваш удаленный сеанс.

Вы можете сделать что-то вроде

exec('
EXEC SP_SET_SESSION_CONTEXT @key=N''TenantId'' ,@value=''XXX''
select * from [AllHoursProduction].[dbo].[User]
') at AHPRO

для запуска всей партии на связанном сервере.

person David Browne - Microsoft    schedule 09.09.2019