> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по Role

# CREATE ROLE

Создаёт новые [роли](/ru/concepts/features/security/access-rights#role-management). Роль — это набор [привилегий](/ru/reference/statements/grant#granting-privilege-syntax). [Пользователь](/ru/reference/statements/create/user), которому назначена роль, получает все привилегии этой роли.

Синтаксис:

```sql theme={null}
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'] [,...]
```

`CREATE ROLE` требует привилегии [CREATE ROLE](/ru/reference/statements/grant#access-management). `OR REPLACE` удаляет существующую роль с тем же именем вместе с выданными ей привилегиями, поэтому дополнительно требуется привилегия [DROP ROLE](/ru/reference/statements/grant#access-management). Привилегия `DROP ROLE` требуется для каждого имени, указанного в операторе, независимо от того, существует ли уже такая роль, поэтому этот оператор нельзя использовать, чтобы узнать, какие роли существуют.

## Управление ролями

Пользователю можно назначить несколько ролей. Пользователи могут применять назначенные им роли в любых комбинациях с помощью оператора [SET ROLE](/ru/reference/statements/set-role). Итоговый набор привилегий представляет собой объединение всех привилегий всех применённых ролей. Если привилегии предоставлены пользователю напрямую, они также объединяются с привилегиями, предоставленными через роли.

Пользователь может иметь роли по умолчанию, которые применяются при входе в систему. Чтобы задать роли по умолчанию, используйте оператор [SET DEFAULT ROLE](/ru/reference/statements/set-role#set-default-role) или оператор [ALTER USER](/ru/reference/statements/alter/user).

Чтобы отозвать роль, используйте оператор [REVOKE](/ru/reference/statements/revoke).

Чтобы удалить роль, используйте оператор [DROP ROLE](/ru/reference/statements/drop#drop-role). Удалённая роль автоматически отзывается у всех пользователей и ролей, которым она была назначена.

## Примеры

```sql theme={null}
CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;
```

Эта последовательность запросов создает роль `accountant` с правом чтения данных из базы данных `db`.

Назначение роли пользователю `mira`:

```sql theme={null}
GRANT accountant TO mira;
```

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

```sql theme={null}
SET ROLE accountant;
SELECT * FROM db.*;
```
