У меня есть база данных, где весь доступ контролируется хранимыми процедурами. Администратор баз данных хотел бы избежать предоставления пользователям прямого доступа для чтения/записи к базовым таблицам, которые я могу понять. Следовательно, все обновление и выбор данных осуществляется с помощью хранимых процедур. В основном он создал одну роль, которая имеет EXECUTE разрешения для всех хранимых процедур в базе данных и предоставила пользователям эту роль.Разрешения при использовании «Execute sp_Executesql»
Проблема заключается в том, что одна из хранимых процедур динамически создает запрос SQl и выполняет его через «Execute sp_Executesql». Не вдаваясь в подробности, запрос создается динамически, поскольку он значительно изменяется в зависимости от многих пользовательских параметров ввода. Хранимая процедура, о которой идет речь, является только оператором SELECT sql, однако я считаю, что просто предоставить хранимую процедуру EXECUTE-разрешения недостаточно. В базовых таблицах, на которые делается ссылка в хранимой процедуре, использующей «Execute sp_Executesql», должен быть предоставлен доступ к «datareader», иначе хранимая процедура завершится с ошибкой.
Любые мысли о том, как исправить это? Я действительно хотел ограничить доступ к таблицам только хранимыми процедурами, но мне нужно найти способ обойти хранимые процедуры, которые используют «Execute sp_Executesq» l. Спасибо.
Вы можете получить более avdice Serverfault. Мой совет. Поговорите с двой и объясните ситуацию. Работайте с ними, чтобы получить права. –