Операции с ролями
-
CREATE ROLE
— Создание новой роли -
ALTER ROLE
— Изменение атрибутов роли -
DROP ROLE
— Сброс роли -
SHOW ROLES
— Вывод списка всех ролей -
USE ROLE
— Установка активной роли -
GRANT
— Предоставление ролям атрибутов
Создание новой роли
CREATE [OR REPLACE] ROLE [IF NOT EXISTS] <role_name>;
Создает новую роль с указанным именем.
Если указан модификатор OR REPLACE
, то конечное действие эквивалентно удалению существующей роли и созданию новой роли с тем же именем.
Вновь созданная роль не наследует никаких атрибутов или привилегий от предыдущей роли.
Опциональный модификатор IF NOT EXISTS
ограничивает запрос только теми случаями, в которых указанный объект еще не существует.
Модификаторы являются взаимоисключающими. Если указать их оба, это приведет к ошибке. |
Изменение атрибутов роли
ALTER ROLE [IF EXISTS] <role_name> RENAME TO <new_role_name>;
ALTER ROLE [IF EXISTS] <role_name> WITH <attribute>;
Изменяет существующую роль.
Действие может заключаться либо в переименовании роли, либо в изменении ее атрибутов.
Доступные атрибуты:
-
SUPERUSER
— предоставляет роли привилегии суперпользователя. -
CREATEROLE
— позволяет роли создавать новые роли.
Опциональный модификатор IF EXISTS
ограничивает запрос только теми случаями, в которых указанный объект существует.
Сброс роли
DROP ROLE [IF EXISTS] <role_name>;
Удаляет роль из системы.
Команда завершится неудачей, если на роль все еще ссылаются какие-либо объекты (например, она предоставлена пользователям или имеет право доступа для каких-то объектов).
Опциональный модификатор IF EXISTS
ограничивает запрос только теми случаями, в которых указанный объект существует.
Вывод списка всех ролей
SHOW [TERSE] ROLES
[LIKE '<pattern>']
[STARTS WITH '<pattern>']
[LIMIT <number> [FROM '<pattern>']];
Выводит список всех ролей в системе. Вывод можно отфильтровать и ограничить с помощью различных опций:
-
TERSE
— отображает упрощенный формат вывода. -
LIKE '<pattern>'
— фильтрует роли, имена которых соответствуют указанному шаблону. -
STARTS WITH '<pattern>'
— фильтрует роли, имена которых начинаются с указанного шаблона. -
LIMIT <number> [FROM '<pattern>']
— ограничивает количество возвращаемых ролей, опционально начиная с определенного имени роли.
Шаблоны <pattern>
представляют собой чувствительные к регистру строковые литералы, которые могут содержать символы подстановки.
Установка активной роли
USE ROLE <role_name>;
Устанавливает указанную роль в качестве активной роли для текущего сеанса.
Если роль установлена как активная, пользователь получает все привилегии, предоставленные этой роли, на время сессии.
Чтобы использовать указанную роль, пользователю должны быть предоставлены соответствующие права.