SQL1



ОТМЕНА ПРИВИЛЕГИЙ


Также как ANSI предоставляет команду CREATE TABLE, чтобы создать таблицу, а DROP TABLE - чтобы от нее избавиться, так и команда GRANT позволяет вам давать привилегии пользователям, не предоставляя способа отобрать их обратно.



Удаление привилегии выполняется командой REVOKE, фактически - стандартному средству с достаточно понятной формой записи. Синтаксис команды REVOKE похож на GRANT, но имеет обратный смысл.

Чтобы удалить привилегию INSERT для Adrian в таблице Заказов, вы можете ввести

REVOKE INSERT ON Orders FROM Adrian;

Использование списков привилегий и пользователей здесь допустимы, как и в случае с GRANT, так что вы можете ввести следующую команду:

REVOKE INSERT, DELETE ON Customers FROM Adrian, Stephen;

Однако здесь имеется некоторая неясность. Кто имеет право отменять привилегии? Когда пользователь с правом передавать привилегии другим, теряет это право, пользователи, которым он предоставил эти привилегии, также их потеряют?

Так как это нестандартная особенность, нет никаких авторитетных ответов на эти вопросы, но наиболее общий подход таков:

  • Привилегии отменяются пользователем, который их предоставил, и отмена будет каскадироваться, то есть она будет автоматически распространяться на всех пользователей, получивших от него эту привилегию.


  • Содержание раздела