Предоставить разрешение SELECT для представления, но не для нижележащих объектов

Я часто читал, что одна из целей VIEW - безопасность: чтобы разрешить некоторым пользователям доступ к базовой таблице, а другим пользователям только к производному представлению. Имея это в виду, я разработал несколько представлений, которые предоставляют ограниченные наборы данных для внешних пользователей.

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

Есть ли способ предоставить разрешения SELECT для представления или хранимой процедуры, не открывая также и базовые объекты?

24
задан thomaspaulb 9 November 2010 в 14:27
поделиться