Разрешения 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?