Создаёт новые роли. Роль — это набор привилегий. Пользователь, которому назначена роль, получает все привилегии этой роли.
Синтаксис:
CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER cluster_name]
[IN access_storage_type]
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [CONST|READONLY|WRITABLE|CHANGEABLE_IN_READONLY] | PROFILE 'profile_name'] [,...]
Пользователю можно назначить несколько ролей. Пользователи могут применять назначенные им роли в любых комбинациях с помощью оператора SET ROLE. Итоговый набор привилегий представляет собой объединение всех привилегий всех применённых ролей. Если привилегии предоставлены пользователю напрямую, они также объединяются с привилегиями, предоставленными через роли.
Пользователь может иметь роли по умолчанию, которые применяются при входе в систему. Чтобы задать роли по умолчанию, используйте оператор SET DEFAULT ROLE или оператор ALTER USER.
Чтобы отозвать роль, используйте оператор REVOKE.
Чтобы удалить роль, используйте оператор DROP ROLE. Удалённая роль автоматически отзывается у всех пользователей и ролей, которым она была назначена.
CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;
Эта последовательность запросов создает роль accountant с правом чтения данных из базы данных db.
Назначение роли пользователю mira:
GRANT accountant TO mira;
После назначения роли пользователь может активировать её и выполнять разрешённые запросы. Например:
SET ROLE accountant;
SELECT * FROM db.*;
Последнее изменение 10 июня 2026 г.