В этом руководстве вы узнаете, как использовать оператор SQL Server REVOKE для удаления ранее предоставленных разрешений субъекту.
Введение в оператор REVOKE SQL Server
Оператор REVOKE удаляет ранее предоставленные разрешения на защищаемый объект из принципала. Ниже показан синтаксис оператора REVOKE:
REVOKE permissions ON securable FROM principal;
В этом синтаксисе:
- Сначала укажите одно или несколько разрешений в предложении REVOKE.
- Во-вторых, укажите защищаемый объект в пункте ON.
- В-третьих, укажите принцип в предложении FROM.
Пример оператора REVOKE SQL Server
Чтобы следовать примеру, вам необходимо завершить пример оператора GRANT, который создает пользователя peter, и предоставить пользователю peter разрешения SELECT, INSERT и DELETE на таблицу People.
Сначала подключитесь к SQL Server, используя учетную запись системного администратора(sa), и используйте оператор REVOKE, чтобы удалить разрешение DELETE на таблицу People у пользователя peter:
REVOKE DELETE ON People FROM peter;
Во-вторых, подключитесь к SQL Server, используя пользователя peter, и выполните оператор DELETE для проверки разрешения:
DELETE FROM People;
Ошибка:
The DELETE permission was denied on the object 'People', database 'HR', schema 'dbo'.
Работает так, как и ожидалось.
В-третьих, выберите данные из таблицы «Люди»:
SELECT * FROM People;
В-четвертых, удалите разрешения SELECT и UPDATE для таблицы People у пользователя peter:
REVOKE SELECT, INSERT ON People FROM peter;
Наконец, переключите соединение на пользователя peter и выберите данные из таблицы People:
SELECT * FROM People;
Ошибка:
The SELECT permission was denied on the object 'People', database 'HR', schema 'dbo'.
Ошибка указывает на то, что отзыв был выполнен успешно.
Краткое содержание
- Используйте оператор SQL Server REVOKE для удаления ранее предоставленных разрешений на защищаемый объект у субъекта.