2020-10-26 10:29:30 +00:00
---
2022-04-09 13:29:05 +00:00
sidebar_position: 38
sidebar_label: GRANT
2020-10-26 10:29:30 +00:00
---
2020-07-31 11:46:58 +00:00
# GRANT
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
- Присваивает [привилегии ](#grant-privileges ) пользователям или ролям ClickHouse.
- Назначает роли пользователям или другим ролям.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Отозвать привилегию можно с помощью выражения [REVOKE ](revoke.md ). Чтобы вывести список присвоенных привилегий, воспользуйтесь выражением [SHOW GRANTS ](show.md#show-grants-statement ).
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
## Синтаксис присвоения привилегий {#grant-privigele-syntax}
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
```sql
2021-07-21 15:08:38 +00:00
GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION] [WITH REPLACE OPTION]
2020-05-15 20:30:51 +00:00
```
2020-07-31 11:46:58 +00:00
- `privilege` — Тип привилегии
- `role` — Роль пользователя ClickHouse.
- `user` — Пользователь ClickHouse.
`WITH GRANT OPTION` разрешает пользователю или роли выполнять запрос `GRANT` . Пользователь может выдавать только те привилегии, которые есть у него, той же или меньшей области действий.
2021-12-28 18:12:13 +00:00
`WITH REPLACE OPTION` заменяет все старые привилегии новыми привилегиями для `user` или `role` , если не указано, добавляет новые привилегии.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
## Синтаксис назначения ролей {#assign-role-syntax}
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
```sql
2021-07-21 15:08:38 +00:00
GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_USER} [,...] [WITH ADMIN OPTION] [WITH REPLACE OPTION]
2020-05-15 20:30:51 +00:00
```
2020-07-31 11:46:58 +00:00
- `role` — Роль пользователя ClickHouse.
- `user` — Пользователь ClickHouse.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
`WITH ADMIN OPTION` присваивает привилегию [ADMIN OPTION ](#admin-option-privilege ) пользователю или роли.
2021-12-28 18:14:32 +00:00
`WITH REPLACE OPTION` заменяет все старые роли новыми ролями для пользователя `user` или `role` , если не указано, добавляет новые новые роли.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
## Использование {#grant-usage}
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Для использования `GRANT` пользователь должен иметь привилегию `GRANT OPTION` . Пользователь может выдавать привилегии только внутри области действий назначенных ему самому привилегий.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Например, администратор выдал привилегию пользователю `john` :
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
```sql
2020-05-15 20:30:51 +00:00
GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTION
```
2020-07-31 11:46:58 +00:00
Это означает, что пользователю `john` разрешено выполнять:
- `SELECT x,y FROM db.table` .
- `SELECT x FROM db.table` .
- `SELECT y FROM db.table` .
`john` не может выполнить `SELECT z FROM db.table` или `SELECT * FROM db.table` . После обработки данных запросов ClickHouse ничего не вернет — даже `x` или `y` . Единственное исключение — если таблица содержит только столбцы `x` и `y` . В таком случае ClickHouse вернет все данные.
Также у `john` есть привилегия `GRANT OPTION` . `john` может выдать другим пользователям привилегии той же или меньшей области действий из тех, которые есть у него.
При присвоении привилегий допускается использовать астериск (`*`) вместо имени таблицы или базы данных. Например, запрос `GRANT SELECT ON db.* TO john` позволит пользователю `john` выполнять `SELECT` над всеми таблицам в базе данных `db` . Также вы можете опускать имя базы данных. В таком случае привилегии позволят совершать операции над текущей базой данных. Например, запрос `GRANT SELECT ON * TO john` выдаст привилегию на выполнение `SELECT` над всеми таблицами в текущей базе данных; `GRANT SELECT ON mytable TO john` — только над таблицей `mytable` в текущей базе данных.
Доступ к базе данных `system` разрешен всегда (данная база данных используется при обработке запросов).
Вы можете присвоить несколько привилегий нескольким пользователям в одном запросе. Запрос `GRANT SELECT, INSERT ON *.* TO john, robin` позволит пользователям `john` и `robin` выполнять `INSERT` и `SELECT` над всеми таблицами всех баз данных на сервере.
## Привилегии {#grant-privileges}
Привилегия — это разрешение на выполнение определенного типа запросов.
Привилегии имеют иерархическую структуру. Н а б о р разрешенных запросов зависит от области действия привилегии.
Иерархия привилегий:
- [SELECT ](#grant-select )
- [INSERT ](#grant-insert )
- [ALTER ](#grant-alter )
- `ALTER TABLE`
- `ALTER UPDATE`
- `ALTER DELETE`
- `ALTER COLUMN`
- `ALTER ADD COLUMN`
- `ALTER DROP COLUMN`
- `ALTER MODIFY COLUMN`
- `ALTER COMMENT COLUMN`
- `ALTER CLEAR COLUMN`
- `ALTER RENAME COLUMN`
- `ALTER INDEX`
- `ALTER ORDER BY`
2021-07-29 15:27:50 +00:00
- `ALTER SAMPLE BY`
2020-07-31 11:46:58 +00:00
- `ALTER ADD INDEX`
- `ALTER DROP INDEX`
- `ALTER MATERIALIZE INDEX`
- `ALTER CLEAR INDEX`
- `ALTER CONSTRAINT`
- `ALTER ADD CONSTRAINT`
- `ALTER DROP CONSTRAINT`
- `ALTER TTL`
2021-04-17 19:26:45 +00:00
- `ALTER MATERIALIZE TTL`
2020-07-31 11:46:58 +00:00
- `ALTER SETTINGS`
- `ALTER MOVE PARTITION`
- `ALTER FETCH PARTITION`
- `ALTER FREEZE PARTITION`
- `ALTER VIEW`
- `ALTER VIEW REFRESH `
- `ALTER VIEW MODIFY QUERY`
- [CREATE ](#grant-create )
- `CREATE DATABASE`
- `CREATE TABLE`
2021-04-17 19:26:45 +00:00
- `CREATE TEMPORARY TABLE`
2020-07-31 11:46:58 +00:00
- `CREATE VIEW`
- `CREATE DICTIONARY`
2021-09-01 18:36:47 +00:00
- `CREATE FUNCTION`
2020-07-31 11:46:58 +00:00
- [DROP ](#grant-drop )
- `DROP DATABASE`
- `DROP TABLE`
- `DROP VIEW`
- `DROP DICTIONARY`
2021-09-01 18:36:47 +00:00
- `DROP FUNCTION`
2020-07-31 11:46:58 +00:00
- [TRUNCATE ](#grant-truncate )
- [OPTIMIZE ](#grant-optimize )
- [SHOW ](#grant-show )
- `SHOW DATABASES`
- `SHOW TABLES`
- `SHOW COLUMNS`
- `SHOW DICTIONARIES`
- [KILL QUERY ](#grant-kill-query )
- [ACCESS MANAGEMENT ](#grant-access-management )
- `CREATE USER`
- `ALTER USER`
- `DROP USER`
- `CREATE ROLE`
- `ALTER ROLE`
- `DROP ROLE`
- `CREATE ROW POLICY`
- `ALTER ROW POLICY`
- `DROP ROW POLICY`
- `CREATE QUOTA`
- `ALTER QUOTA`
- `DROP QUOTA`
- `CREATE SETTINGS PROFILE`
- `ALTER SETTINGS PROFILE`
- `DROP SETTINGS PROFILE`
- `SHOW ACCESS`
- `SHOW_USERS`
- `SHOW_ROLES`
- `SHOW_ROW_POLICIES`
- `SHOW_QUOTAS`
- `SHOW_SETTINGS_PROFILES`
- `ROLE ADMIN`
- [SYSTEM ](#grant-system )
- `SYSTEM SHUTDOWN`
- `SYSTEM DROP CACHE`
- `SYSTEM DROP DNS CACHE`
- `SYSTEM DROP MARK CACHE`
- `SYSTEM DROP UNCOMPRESSED CACHE`
- `SYSTEM RELOAD`
- `SYSTEM RELOAD CONFIG`
- `SYSTEM RELOAD DICTIONARY`
2021-04-17 19:26:45 +00:00
- `SYSTEM RELOAD EMBEDDED DICTIONARIES`
2021-09-27 20:24:12 +00:00
- `SYSTEM RELOAD FUNCTION`
- `SYSTEM RELOAD FUNCTIONS`
2020-07-31 11:46:58 +00:00
- `SYSTEM MERGES`
- `SYSTEM TTL MERGES`
- `SYSTEM FETCHES`
- `SYSTEM MOVES`
- `SYSTEM SENDS`
- `SYSTEM DISTRIBUTED SENDS`
- `SYSTEM REPLICATED SENDS`
- `SYSTEM REPLICATION QUEUES`
- `SYSTEM SYNC REPLICA`
- `SYSTEM RESTART REPLICA`
- `SYSTEM FLUSH`
- `SYSTEM FLUSH DISTRIBUTED`
- `SYSTEM FLUSH LOGS`
- [INTROSPECTION ](#grant-introspection )
- `addressToLine`
- `addressToSymbol`
- `demangle`
- [SOURCES ](#grant-sources )
- `FILE`
- `URL`
- `REMOTE`
- `MYSQL`
- `ODBC`
- `JDBC`
- `HDFS`
- `S3`
- [dictGet ](#grant-dictget )
Примеры того, как трактуется данная иерархия:
2021-07-29 15:20:55 +00:00
- Привилегия `ALTER` включает все остальные `ALTER*` привилегии.
2020-07-31 11:46:58 +00:00
- `ALTER CONSTRAINT` включает `ALTER ADD CONSTRAINT` и `ALTER DROP CONSTRAINT` .
Привилегии применяются на разных уровнях. Уровень определяет синтаксис присваивания привилегии.
Уровни (от низшего к высшему):
- `COLUMN` — Привилегия присваивается для столбца, таблицы, базы данных или глобально.
- `TABLE` — Привилегия присваивается для таблицы, базы данных или глобально.
- `VIEW` — Привилегия присваивается для представления, базы данных или глобально.
- `DICTIONARY` — Привилегия присваивается для словаря, базы данных или глобально.
- `DATABASE` — Привилегия присваивается для базы данных или глобально.
- `GLOBAL` — Привилегия присваивается только глобально.
- `GROUP` — Группирует привилегии разных уровней. При присвоении привилегии уровня `GROUP` присваиваются только привилегии из группы в соответствии с используемым синтаксисом.
Примеры допустимого синтаксиса:
- `GRANT SELECT(x) ON db.table TO user`
- `GRANT SELECT ON db.* TO user`
Примеры недопустимого синтаксиса:
- `GRANT CREATE USER(x) ON db.table TO user`
- `GRANT CREATE USER ON db.* TO user`
Специальная привилегия [ALL ](#grant-all ) присваивает все привилегии пользователю или роли.
По умолчанию пользователь или роль не имеют привилегий.
Отсутствие привилегий у пользователя или роли отображается как привилегия [NONE ](#grant-none ).
Выполнение некоторых запросов требует определенного набора привилегий. Например, чтобы выполнить запрос [RENAME ](misc.md#misc_operations-rename ), нужны следующие привилегии: `SELECT` , `CREATE TABLE` , `INSERT` и `DROP TABLE` .
2020-05-15 20:30:51 +00:00
### SELECT {#grant-select}
2020-07-31 11:46:58 +00:00
Разрешает выполнять запросы [SELECT ](select/index.md ).
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Уровень: `COLUMN` .
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
**Описание**
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Пользователь с данной привилегией может выполнять запросы `SELECT` над определенными столбцами из определенной таблицы и базы данных. При включении в запрос других столбцов запрос ничего не вернет.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Рассмотрим следующую привилегию:
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
```sql
2020-05-15 20:30:51 +00:00
GRANT SELECT(x,y) ON db.table TO john
```
2020-07-31 11:46:58 +00:00
Данная привилегия позволяет пользователю `john` выполнять выборку данных из столбцов `x` и/или `y` в `db.table` , например, `SELECT x FROM db.table` . `john` не может выполнить `SELECT z FROM db.table` или `SELECT * FROM db.table` . После обработки данных запросов ClickHouse ничего не вернет — даже `x` или `y` . Единственное исключение — если таблица содержит только столбцы `x` и `y` . В таком случае ClickHouse вернет все данные.
2020-05-15 20:30:51 +00:00
### INSERT {#grant-insert}
2020-07-31 11:46:58 +00:00
Разрешает выполнять запросы [INSERT ](insert-into.md ).
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Уровень: `COLUMN` .
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
**Описание**
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Пользователь с данной привилегией может выполнять запросы `INSERT` над определенными столбцами из определенной таблицы и базы данных. При включении в запрос других столбцов запрос не добавит никаких данных.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
**Пример**
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
```sql
2020-05-15 20:30:51 +00:00
GRANT INSERT(x,y) ON db.table TO john
```
2020-07-31 11:46:58 +00:00
Присвоенная привилегия позволит пользователю `john` вставить данные в столбцы `x` и/или `y` в `db.table` .
2020-05-15 20:30:51 +00:00
### ALTER {#grant-alter}
2020-08-25 15:38:36 +00:00
Разрешает выполнять запросы [ALTER ](alter/index.md ) в соответствии с о следующей иерархией привилегий:
2020-07-31 11:46:58 +00:00
2021-07-29 15:20:55 +00:00
- `ALTER` . Уровень: `COLUMN` .
2020-07-31 11:46:58 +00:00
- `ALTER TABLE` . Уровень: `GROUP`
- `ALTER UPDATE` . Уровень: `COLUMN` . Алиасы: `UPDATE`
- `ALTER DELETE` . Уровень: `COLUMN` . Алиасы: `DELETE`
- `ALTER COLUMN` . Уровень: `GROUP`
- `ALTER ADD COLUMN` . Уровень: `COLUMN` . Алиасы: `ADD COLUMN`
- `ALTER DROP COLUMN` . Уровень: `COLUMN` . Алиасы: `DROP COLUMN`
- `ALTER MODIFY COLUMN` . Уровень: `COLUMN` . Алиасы: `MODIFY COLUMN`
- `ALTER COMMENT COLUMN` . Уровень: `COLUMN` . Алиасы: `COMMENT COLUMN`
- `ALTER CLEAR COLUMN` . Уровень: `COLUMN` . Алиасы: `CLEAR COLUMN`
- `ALTER RENAME COLUMN` . Уровень: `COLUMN` . Алиасы: `RENAME COLUMN`
- `ALTER INDEX` . Уровень: `GROUP` . Алиасы: `INDEX`
- `ALTER ORDER BY` . Уровень: `TABLE` . Алиасы: `ALTER MODIFY ORDER BY` , `MODIFY ORDER BY`
2021-07-29 15:27:50 +00:00
- `ALTER SAMPLE BY` . Уровень: `TABLE` . Алиасы: `ALTER MODIFY SAMPLE BY` , `MODIFY SAMPLE BY`
2020-07-31 11:46:58 +00:00
- `ALTER ADD INDEX` . Уровень: `TABLE` . Алиасы: `ADD INDEX`
- `ALTER DROP INDEX` . Уровень: `TABLE` . Алиасы: `DROP INDEX`
- `ALTER MATERIALIZE INDEX` . Уровень: `TABLE` . Алиасы: `MATERIALIZE INDEX`
- `ALTER CLEAR INDEX` . Уровень: `TABLE` . Алиасы: `CLEAR INDEX`
- `ALTER CONSTRAINT` . Уровень: `GROUP` . Алиасы: `CONSTRAINT`
- `ALTER ADD CONSTRAINT` . Уровень: `TABLE` . Алиасы: `ADD CONSTRAINT`
- `ALTER DROP CONSTRAINT` . Уровень: `TABLE` . Алиасы: `DROP CONSTRAINT`
- `ALTER TTL` . Уровень: `TABLE` . Алиасы: `ALTER MODIFY TTL` , `MODIFY TTL`
2021-04-17 19:26:45 +00:00
- `ALTER MATERIALIZE TTL` . Уровень: `TABLE` . Алиасы: `MATERIALIZE TTL`
2020-07-31 11:46:58 +00:00
- `ALTER SETTINGS` . Уровень: `TABLE` . Алиасы: `ALTER SETTING` , `ALTER MODIFY SETTING` , `MODIFY SETTING`
- `ALTER MOVE PARTITION` . Уровень: `TABLE` . Алиасы: `ALTER MOVE PART` , `MOVE PARTITION` , `MOVE PART`
2021-06-25 17:29:03 +00:00
- `ALTER FETCH PARTITION` . Уровень: `TABLE` . Алиасы: `ALTER FETCH PART` , `FETCH PARTITION` , `FETCH PART`
2020-07-31 11:46:58 +00:00
- `ALTER FREEZE PARTITION` . Уровень: `TABLE` . Алиасы: `FREEZE PARTITION`
- `ALTER VIEW` Уровень: `GROUP`
- `ALTER VIEW REFRESH ` . Уровень: `VIEW` . Алиасы: `ALTER LIVE VIEW REFRESH` , `REFRESH VIEW`
- `ALTER VIEW MODIFY QUERY` . Уровень: `VIEW` . Алиасы: `ALTER TABLE MODIFY QUERY`
Примеры того, как трактуется данная иерархия:
2021-07-29 15:20:55 +00:00
- Привилегия `ALTER` включает все остальные `ALTER*` привилегии.
2020-07-31 11:46:58 +00:00
- `ALTER CONSTRAINT` включает `ALTER ADD CONSTRAINT` и `ALTER DROP CONSTRAINT` .
**Дополнительно**
- Привилегия `MODIFY SETTING` позволяет изменять настройки движков таблиц. Н е влияет на настройки или конфигурационные параметры сервера.
- Операция `ATTACH` требует наличие привилегии [CREATE ](#grant-create ).
- Операция `DETACH` требует наличие привилегии [DROP ](#grant-drop ).
2020-08-10 13:10:48 +00:00
- Для остановки мутации с помощью [KILL MUTATION ](../../sql-reference/statements/kill.md#kill-mutation ), необходима привилегия на выполнение данной мутации. Например, чтобы остановить запрос `ALTER UPDATE` , необходима одна из привилегий: `ALTER UPDATE` , `ALTER TABLE` или `ALTER` .
2020-05-15 20:30:51 +00:00
### CREATE {#grant-create}
2020-08-06 17:05:43 +00:00
Разрешает выполнять DDL-запросы [CREATE ](../../sql-reference/statements/create/index.md ) и [ATTACH ](misc.md#attach ) в соответствии с о следующей иерархией привилегий:
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
- `CREATE` . Уровень: `GROUP`
- `CREATE DATABASE` . Уровень: `DATABASE`
- `CREATE TABLE` . Уровень: `TABLE`
2021-04-17 19:26:45 +00:00
- `CREATE TEMPORARY TABLE` . Уровень: `GLOBAL`
2020-07-31 11:46:58 +00:00
- `CREATE VIEW` . Уровень: `VIEW`
- `CREATE DICTIONARY` . Уровень: `DICTIONARY`
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
**Дополнительно**
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
- Для удаления созданной таблицы пользователю необходима привилегия [DROP ](#grant-drop ).
2020-05-15 20:30:51 +00:00
### DROP {#grant-drop}
2020-07-31 11:46:58 +00:00
Разрешает выполнять запросы [DROP ](misc.md#drop ) и [DETACH ](misc.md#detach-statement ) в соответствии с о следующей иерархией привилегий:
2021-05-24 17:24:40 +00:00
- `DROP` . Уровень: `GROUP`
2020-07-31 11:46:58 +00:00
- `DROP DATABASE` . Уровень: `DATABASE`
- `DROP TABLE` . Уровень: `TABLE`
- `DROP VIEW` . Уровень: `VIEW`
- `DROP DICTIONARY` . Уровень: `DICTIONARY`
2020-05-15 20:30:51 +00:00
### TRUNCATE {#grant-truncate}
2020-08-10 13:10:48 +00:00
Разрешает выполнять запросы [TRUNCATE ](../../sql-reference/statements/truncate.md ).
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Уровень: `TABLE` .
2020-05-15 20:30:51 +00:00
### OPTIMIZE {#grant-optimize}
2020-07-31 11:46:58 +00:00
Разрешает выполнять запросы [OPTIMIZE TABLE ](misc.md#misc_operations-optimize ).
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Уровень: `TABLE` .
2020-05-15 20:30:51 +00:00
### SHOW {#grant-show}
2020-07-31 11:46:58 +00:00
Разрешает выполнять запросы `SHOW` , `DESCRIBE` , `USE` и `EXISTS` в соответствии с о следующей иерархией привилегий:
- `SHOW` . Уровень: `GROUP`
- `SHOW DATABASES` . Уровень: `DATABASE` . Разрешает выполнять запросы `SHOW DATABASES` , `SHOW CREATE DATABASE` , `USE <database>` .
- `SHOW TABLES` . Уровень: `TABLE` . Разрешает выполнять запросы `SHOW TABLES` , `EXISTS <table>` , `CHECK <table>` .
- `SHOW COLUMNS` . Уровень: `COLUMN` . Разрешает выполнять запросы `SHOW CREATE TABLE` , `DESCRIBE` .
- `SHOW DICTIONARIES` . Уровень: `DICTIONARY` . Разрешает выполнять запросы `SHOW DICTIONARIES` , `SHOW CREATE DICTIONARY` , `EXISTS <dictionary>` .
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
**Дополнительно**
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
У пользователя есть привилегия `SHOW` , если ему присвоена любая другая привилегия по отношению к определенной таблице, словарю или базе данных.
2020-05-15 20:30:51 +00:00
### KILL QUERY {#grant-kill-query}
2020-08-10 13:10:48 +00:00
Разрешает выполнять запросы [KILL ](../../sql-reference/statements/kill.md#kill-query ) в соответствии с о следующей иерархией привилегий:
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Уровень: `GLOBAL` .
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
**Дополнительно**
`KILL QUERY` позволяет пользователю останавливать запросы других пользователей.
2020-05-15 20:30:51 +00:00
### ACCESS MANAGEMENT {#grant-access-management}
2020-07-31 11:46:58 +00:00
Разрешает пользователю выполнять запросы на управление пользователями, ролями и политиками доступа к строкам.
- `ACCESS MANAGEMENT` . Уровень: `GROUP`
- `CREATE USER` . Уровень: `GLOBAL`
- `ALTER USER` . Уровень: `GLOBAL`
- `DROP USER` . Уровень: `GLOBAL`
- `CREATE ROLE` . Уровень: `GLOBAL`
- `ALTER ROLE` . Уровень: `GLOBAL`
- `DROP ROLE` . Уровень: `GLOBAL`
- `ROLE ADMIN` . Уровень: `GLOBAL`
- `CREATE ROW POLICY` . Уровень: `GLOBAL` . Алиасы: `CREATE POLICY`
- `ALTER ROW POLICY` . Уровень: `GLOBAL` . Алиасы: `ALTER POLICY`
- `DROP ROW POLICY` . Уровень: `GLOBAL` . Алиасы: `DROP POLICY`
- `CREATE QUOTA` . Уровень: `GLOBAL`
- `ALTER QUOTA` . Уровень: `GLOBAL`
- `DROP QUOTA` . Уровень: `GLOBAL`
- `CREATE SETTINGS PROFILE` . Уровень: `GLOBAL` . Алиасы: `CREATE PROFILE`
- `ALTER SETTINGS PROFILE` . Уровень: `GLOBAL` . Алиасы: `ALTER PROFILE`
- `DROP SETTINGS PROFILE` . Уровень: `GLOBAL` . Алиасы: `DROP PROFILE`
- `SHOW ACCESS` . Уровень: `GROUP`
- `SHOW_USERS` . Уровень: `GLOBAL` . Алиасы: `SHOW CREATE USER`
- `SHOW_ROLES` . Уровень: `GLOBAL` . Алиасы: `SHOW CREATE ROLE`
- `SHOW_ROW_POLICIES` . Уровень: `GLOBAL` . Алиасы: `SHOW POLICIES` , `SHOW CREATE ROW POLICY` , `SHOW CREATE POLICY`
- `SHOW_QUOTAS` . Уровень: `GLOBAL` . Алиасы: `SHOW CREATE QUOTA`
- `SHOW_SETTINGS_PROFILES` . Уровень: `GLOBAL` . Алиасы: `SHOW PROFILES` , `SHOW CREATE SETTINGS PROFILE` , `SHOW CREATE PROFILE`
Привилегия `ROLE ADMIN` разрешает пользователю назначать и отзывать любые роли, включая те, которые не назначены пользователю с опцией администратора.
2020-05-15 20:30:51 +00:00
### SYSTEM {#grant-system}
2020-07-31 11:46:58 +00:00
Разрешает выполнять запросы [SYSTEM ](system.md ) в соответствии с о следующей иерархией привилегий:
- `SYSTEM` . Уровень: `GROUP`
- `SYSTEM SHUTDOWN` . Уровень: `GLOBAL` . Алиасы: `SYSTEM KILL` , `SHUTDOWN`
- `SYSTEM DROP CACHE` . Алиасы: `DROP CACHE`
- `SYSTEM DROP DNS CACHE` . Уровень: `GLOBAL` . Алиасы: `SYSTEM DROP DNS` , `DROP DNS CACHE` , `DROP DNS`
- `SYSTEM DROP MARK CACHE` . Уровень: `GLOBAL` . Алиасы: `SYSTEM DROP MARK` , `DROP MARK CACHE` , `DROP MARKS`
- `SYSTEM DROP UNCOMPRESSED CACHE` . Уровень: `GLOBAL` . Алиасы: `SYSTEM DROP UNCOMPRESSED` , `DROP UNCOMPRESSED CACHE` , `DROP UNCOMPRESSED`
- `SYSTEM RELOAD` . Уровень: `GROUP`
- `SYSTEM RELOAD CONFIG` . Уровень: `GLOBAL` . Алиасы: `RELOAD CONFIG`
- `SYSTEM RELOAD DICTIONARY` . Уровень: `GLOBAL` . Алиасы: `SYSTEM RELOAD DICTIONARIES` , `RELOAD DICTIONARY` , `RELOAD DICTIONARIES`
2021-04-17 19:26:45 +00:00
- `SYSTEM RELOAD EMBEDDED DICTIONARIES` . Уровень: `GLOBAL` . Алиасы: `RELOAD EMBEDDED DICTIONARIES`
2020-07-31 11:46:58 +00:00
- `SYSTEM MERGES` . Уровень: `TABLE` . Алиасы: `SYSTEM STOP MERGES` , `SYSTEM START MERGES` , `STOP MERGES` , `START MERGES`
- `SYSTEM TTL MERGES` . Уровень: `TABLE` . Алиасы: `SYSTEM STOP TTL MERGES` , `SYSTEM START TTL MERGES` , `STOP TTL MERGES` , `START TTL MERGES`
- `SYSTEM FETCHES` . Уровень: `TABLE` . Алиасы: `SYSTEM STOP FETCHES` , `SYSTEM START FETCHES` , `STOP FETCHES` , `START FETCHES`
- `SYSTEM MOVES` . Уровень: `TABLE` . Алиасы: `SYSTEM STOP MOVES` , `SYSTEM START MOVES` , `STOP MOVES` , `START MOVES`
- `SYSTEM SENDS` . Уровень: `GROUP` . Алиасы: `SYSTEM STOP SENDS` , `SYSTEM START SENDS` , `STOP SENDS` , `START SENDS`
- `SYSTEM DISTRIBUTED SENDS` . Уровень: `TABLE` . Алиасы: `SYSTEM STOP DISTRIBUTED SENDS` , `SYSTEM START DISTRIBUTED SENDS` , `STOP DISTRIBUTED SENDS` , `START DISTRIBUTED SENDS`
- `SYSTEM REPLICATED SENDS` . Уровень: `TABLE` . Алиасы: `SYSTEM STOP REPLICATED SENDS` , `SYSTEM START REPLICATED SENDS` , `STOP REPLICATED SENDS` , `START REPLICATED SENDS`
- `SYSTEM REPLICATION QUEUES` . Уровень: `TABLE` . Алиасы: `SYSTEM STOP REPLICATION QUEUES` , `SYSTEM START REPLICATION QUEUES` , `STOP REPLICATION QUEUES` , `START REPLICATION QUEUES`
- `SYSTEM SYNC REPLICA` . Уровень: `TABLE` . Алиасы: `SYNC REPLICA`
- `SYSTEM RESTART REPLICA` . Уровень: `TABLE` . Алиасы: `RESTART REPLICA`
- `SYSTEM FLUSH` . Уровень: `GROUP`
- `SYSTEM FLUSH DISTRIBUTED` . Уровень: `TABLE` . Алиасы: `FLUSH DISTRIBUTED`
- `SYSTEM FLUSH LOGS` . Уровень: `GLOBAL` . Алиасы: `FLUSH LOGS`
Привилегия `SYSTEM RELOAD EMBEDDED DICTIONARIES` имплицитно присваивается привилегией `SYSTEM RELOAD DICTIONARY ON *.*` .
2020-05-15 20:30:51 +00:00
### INTROSPECTION {#grant-introspection}
2020-07-31 11:46:58 +00:00
Разрешает использовать функции [интроспекции ](../../operations/optimizing-performance/sampling-query-profiler.md ).
- `INTROSPECTION` . Уровень: `GROUP` . Алиасы: `INTROSPECTION FUNCTIONS`
- `addressToLine` . Уровень: `GLOBAL`
- `addressToSymbol` . Уровень: `GLOBAL`
- `demangle` . Уровень: `GLOBAL`
2020-05-15 20:30:51 +00:00
### SOURCES {#grant-sources}
2020-07-31 11:46:58 +00:00
Разрешает использовать внешние источники данных. Применяется к [движкам таблиц ](../../engines/table-engines/index.md ) и [табличным функциям ](../table-functions/index.md#table-functions ).
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
- `SOURCES` . Уровень: `GROUP`
- `FILE` . Уровень: `GLOBAL`
- `URL` . Уровень: `GLOBAL`
- `REMOTE` . Уровень: `GLOBAL`
- `YSQL` . Уровень: `GLOBAL`
- `ODBC` . Уровень: `GLOBAL`
- `JDBC` . Уровень: `GLOBAL`
- `HDFS` . Уровень: `GLOBAL`
- `S3` . Уровень: `GLOBAL`
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Привилегия `SOURCES` разрешает использование всех источников. Также вы можете присвоить привилегию для каждого источника отдельно. Для использования источников необходимы дополнительные привилегии.
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Примеры:
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
- Чтобы создать таблицу с [движком MySQL ](../../engines/table-engines/integrations/mysql.md ), необходимы привилегии `CREATE TABLE (ON db.table_name)` и `MYSQL` .
- Чтобы использовать [табличную функцию mysql ](../table-functions/mysql.md ), необходимы привилегии `CREATE TEMPORARY TABLE` и `MYSQL` .
2020-05-15 20:30:51 +00:00
### dictGet {#grant-dictget}
2020-07-31 11:46:58 +00:00
- `dictGet` . Алиасы: `dictHas` , `dictGetHierarchy` , `dictIsIn`
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Разрешает вызывать функции [dictGet ](../functions/ext-dict-functions.md#dictget ), [dictHas ](../functions/ext-dict-functions.md#dicthas ), [dictGetHierarchy ](../functions/ext-dict-functions.md#dictgethierarchy ), [dictIsIn ](../functions/ext-dict-functions.md#dictisin ).
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
Уровень: `DICTIONARY` .
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
**Примеры**
2020-05-15 20:30:51 +00:00
2020-07-31 11:46:58 +00:00
- `GRANT dictGet ON mydb.mydictionary TO john`
- `GRANT dictGet ON mydictionary TO john`
2020-05-15 20:30:51 +00:00
### ALL {#grant-all}
2020-07-31 11:46:58 +00:00
Присваивает пользователю или роли все привилегии на объект с регулируемым доступом.
2020-05-15 20:30:51 +00:00
### NONE {#grant-none}
2020-07-31 11:46:58 +00:00
Н е присваивает никаких привилегий.
2020-05-15 20:30:51 +00:00
### ADMIN OPTION {#admin-option-privilege}
2020-07-31 11:46:58 +00:00
Привилегия `ADMIN OPTION` разрешает пользователю назначать свои роли другому пользователю.