Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Инструкция Micrsoft SQL Server deny

Инструкция Micrsoft SQL Server denyСпецифичная для Microsoft SQL Server инструкция deny добавляет дополнительный уровень гранулярности в систему привилегий, существующую в Oracle и DB2. В стандарте SQL:2003 данная инструкция не определена; будущие версии Microsoft SQL Server, возможно, также не будут ее поддерживать. Если для назначения пользователю привилегий были использованы роли, может возникнуть ситуация, когда отозвать их нужно только для одного пользователя, не затрагивая права всех остальных. Попытка отзыва привилегии у пользователя, которому она назначена с помощью роли, приведет к ошибке. Можно создать другую роль, назначить ей подмножество привилегий первой роли, а затем переназначить ее пользователю. Также привилегии можно назначать пользователям напрямую, в обход ролей. Любой из этих подходов сопряжен с избыточностью и возможной путаницей. Инструкция deny позволяет изящно решить данную задачу. Следующая инструкция deny отзывает привилегии как системного, так и объектного уровня; при этом синтаксис аналогичен инструкциям grant и revoke. Предложение cascade указывает на то, что привилегия (разрешение), отзываемая у учетной записи, будет также отозвана и у всех пользователей, ролей и групп, имеющих данную учетную запись. Ключевое слово all не поддерживается в Microsoft SQL Server 2008 и указано в синтаксисе исключительно из соображений обратной совместимости. В то же время оно поддерживается в предыдущих версиях этой СУБД (от 7.0 до 2005).

Для примера предположим, что существует роль sales, имеющая в базе данных все привилегии, и пользователю new_user нужны все они, за исключением create table. Следующая инструкция предоставляет пользователю все вышеупомянутые привилегии. Инструкция deny всегда имеет высший приоритет. Таким образом, пользователь new_user имеет все унаследованные привилегии роли SALES, однако попытка создания таблицы приведет к ошибке. Все остальные члены роли sales не будут иметь подобных проблем.

REVOKE [GRANT OPTION FOR] Привилегии не могут быть отозваны у фиксированных в системе ролей. При отзыве разрешений у группы Windows NT аргумент учетной записи должен иметь формат BUILTIN^oMeH>, где под доменом понимается либо имя компьютера, либо имя домена, к которому он принадлежит.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *