Иллюстрированный самоучитель по PostgreSQL

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 для вывода информации о правах доступа к таблице publishers:

booktown=# \z publishers
Access permissions for database "booktown"
Relation | Access permissions
publishers | {"=","manager=arwR"}
(1 row)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.