Самоучитель по SQL-сервер в Linux



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)