GRANT
Предоставление прав доступа пользователю, группе или всем пользователям
базы данных.
Синтаксис
GRANT привилегия [, ...] ON объект [. ...]
ТО { PUBLIC | GROUP группа \ пользователь }
Параметры
- привилегия. Предоставляемая привилегия. Допустимые значения:
- SELECT — пользователю или группе разрешается выборка из всех
полей заданной таблицы или представления;
- INSERT — пользователю или группе разрешается вставка данных во
все поля полей заданной таблицы;
- UPDATE — пользователю или группе разрешается обновление всех
полей заданной таблицы;
- DELETE — пользователю или группе разрешается удаление данных
из всех полей заданной таблицы;
- RULE — пользователю или группе разрешается удаление правил из
заданной таблицы;
- ALL — сокращенная запись для предоставления всех перечисленных
привилегий пользователю или группе.
- объект. Имя объекта, для которого предоставляются привилегии. Допустимыми
типами объектов являются таблицы, представления и последовательности.
- PUBLIC. Необязательное ключевое слово PUBLIC означает, что привилегия
предоставляется всем пользователям базы данных.
- группа. Имя группы, которой предоставляются привилегии.
- пользователь. Имя пользователя PostgreSQL, которому предоставляются
привилегии. Ключевое слово PUBLIC обозначает всех пользователей.
Результаты
- CHANGE. Сообщение возвращается в том случае, если предоставление
привилегий пользователю или группе прошло успешно.
- ERROR: ChangeAcl: class "объект" not found. Ошибка — указанный
объект не найден в текущей базе данных.
- ERROR: aclparse: non-existent user "пользователь". Ошибка
— пользователь с указанным именем не существует.
- ERROR: non-existent group "группа". Ошибка — группа не
существует.
Описание
Команда GRANT предоставляет пользователям и группам права доступа к
объектам. Права могут предоставляться конкретному пользователю или группе,
а ключевое слово PUBLIC предоставляет их всем пользователям базы данных.
По умолчанию доступ к объекту разрешен только его владельцу. После того
как объект создан, владелец предоставляет права доступа к нему другим
пользователям.
Чтобы предоставить частичный доступ к данным, содержащимся в таблице,
создайте представление для нужного подмножества полей и/или записей и
предоставьте пользователям доступ к этому представлению.
В клиенте psql информация о правах доступа к существующим объектам выводится
командой \z.
Примеры
Следующая команда предоставляет пользователю manager все права доступа
к таблице publishers:
booktown=# GRANT ALL ON publishers TO manager;
GRANT
Ниже приведен пример использования команды \z клиента psql для вывода
информации о правах доступа к таблице publ I shers:
booktown=# \z publishers
Access permissions for database "booktown"
Relation | Access permissions
publishers | {"=","manager=arwR"}
(1 row) |