хранимая процедура вызывает данные в другой схеме

SQL Server 2008 R2: обычно мы создаем нашу таблицу и хранимую процедуру и предоставляем пользователю права на выполнение хранимой процедуры. Нам никогда не нужно предоставлять особые права на таблицы или представления, потому что если пользователь может выполнить хранимую процедуру, SQL Server считает, что хранимой процедуре должно быть разрешено выполнять операторы select/insert/update. Это работает хорошо, поскольку мы имеем дело только с одной схемой, но теперь у нас есть сценарий, в котором таблицы находятся в одной схеме, а хранимая процедура - в другой. Когда пользователь выполняет хранимую процедуру, он получает ошибку:

Msg 229, Level 14, State 5, Procedure teststoredprocedure, Line 7 The SELECT разрешение было отклонено на объекте 'testtable', базе данных 'testdatabase', схема 'testschema'.

teststoredprocedure находится в другой схеме, чем testtable. Можно ли разрешить хранимой процедуре выбирать из таблиц, не предоставляя пользователю конкретных прав на эти таблицы?

6
задан marc_s 14 December 2011 в 20:32
поделиться