Я часто читал, что одной целью VIEW является безопасность: разрешить некоторым пользователям доступ к базовой таблице и другим пользователям только к производному виду. Имея это в виду, я разработал несколько представлений, которые предоставляют ограниченные наборы данных для внешних пользователей.
Все очень хорошо, но на практике это не работает. После того как я предоставил разрешение SELECT
для представления, пользователи не смогут получить к нему доступ, если я не предоставил SELECT
для всех базовых объектов. Такая же история хранимых процедур. Чистый результат не работает, поскольку я в конечном итоге все же предоставляю доступ к конфиденциальным данным не тем пользователям, а также раздражает, так как легко забыть один объект, и пользователи возвращаются, чтобы жаловаться на то, что представление "не работа".
Есть ли способ предоставить разрешения SELECT
для представления или хранимой процедуры, не выставляя также скрытые объекты?