Ограничение прав командой REVOKE
Ограничение прав командой REVOKE
По умолчанию обычный пользователь не имеет прав доступа к объектам данным, которые ему не принадлежат. Чтобы отозвать право после его предоставления, владелец объекта (или суперпользователь) может воспользоваться командой REVOKE, имеющей много общего с командой GRANT. Синтаксис команды REVOKE:
REVOKE привилегия [. ...] ON объект [. ... ]
FROM { PUBLIC | пользователь \ GROUP группа }
По своей структуре команда REVOKE идентична команде GRANT. Отличается только название самой команды и ключевое слово FROM заменяется словом ТО.
Примечание 1
Примечание 1
Отзыв привилегий с ключевым словом PUBLIC действует только на специальную группу public, в которую входят все пользователи. При этом отзыв прав не влияет на пользователей, которым эти привилегии были предоставлены явно (то есть с указанием конкретных имен).
Предположим, пользователю david было предоставлено право доступа UPDATE к таблице books. В другом отделе пользователю уже не придется редактировать сведения о книгах, и теперь вы хотите отнять у него привилегию UPDATE на доступ к таблице books.
В листинге 10.19 команда \z клиента psql выводит информацию о правах для таблицы books; из результатов видно, что пользователь david имеет право записи в эту таблицу. Команда REVOKE отнимает у пользователя david привилегии UPDATE и DELETE для таблицы books. Фрагмент завершается еще одной командой \z, которая показывает, что привилегия была отозвана успешно.