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