Разрешения SQL Server для хранимых процедур с динамическим SQL

У меня есть база данных, которая имеет роль приложения. Все члены роли принадлежат группе в Active Directory. Вместо того, чтобы давать роли полномочия на выбор из таблиц, я дал роли разрешение на выполнение для всех хранимых процедур, которые нужно вызвать.

Это прекрасно работает, за исключением одной из моих хранимых процедур, которая создает динамический SQL и вызывает sp_executesql.

Динамический sql выглядит примерно так:

SET @SQL = N'
SELECT * 
FROM dbo.uvView1 
INNER JOIN uvView2 ON uvView1.Id = uvView2.Id'

EXEC sp_executesql @SQL

Пользователи в этой роли не могут вызвать хранимую процедуру. Это дает следующую ошибку, которая, как я полагаю, является ожидаемой:

В доступе SELECT было отказано для объекта 'uvView1', базы данных 'Foobar', схемы 'dbo'.

Есть ли способ, которым мои пользователи могут успешно выполнить этот процесс, не предоставляя роли разрешения для всех представлений в динамическом SQL?

Ответы на вопрос(3)

Ваш ответ на вопрос