ClickHouse/docs/ru/sql-reference/statements/create/role.md
Anna 13b292865f
DOCSUP-2029: Split create.md (#13302)
* Split create.md into separated files

* Fixed links

* Fixed a typo

* Fixed links

* Fixed link

Co-authored-by: Anna Devyatova <annadevyatova@yandex-team.ru>
2020-08-06 20:05:43 +03:00

2.9 KiB
Raw Blame History

toc_priority toc_title
6 Роль

CREATE ROLE

Создает роль.

Синтаксис

CREATE ROLE [IF NOT EXISTS | OR REPLACE] name
    [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...]

Описание

Роль — это набор привилегий. Пользователь, которому назначена роль, получает все привилегии этой роли.

Одному пользователю можно назначить несколько ролей. Пользователи могут применять назначенные роли в произвольных комбинациях с помощью выражения SET ROLE. Конечный объем привилегий — это комбинация всех привилегий всех примененных ролей. Если у пользователя имеются привилегии, присвоенные его аккаунту напрямую, они также прибавляются к привилегиям, присвоенным через роли.

Роли по умолчанию применяются при входе пользователя в систему. Установить роли по умолчанию можно с помощью выражений SET DEFAULT ROLE или ALTER USER.

Для отзыва роли используется выражение REVOKE.

Для удаления роли используется выражение DROP ROLE. Удаленная роль автоматически отзывается у всех пользователей, которым была назначена.

Примеры

CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;

Такая последовательность запросов создаст роль accountant, у которой есть привилегия на чтение из базы данных accounting.

Назначить роль accountant аккаунту mira:

GRANT accountant TO mira;

После назначения роли пользователь может ее применить и выполнять разрешенные ей запросы. Например:

SET ROLE accountant;
SELECT * FROM db.*;

Оригинальная статья