permissions-for-queries.md 3.2 KB
Newer Older
1 2
---
toc_priority: 58
3
toc_title: "Разрешения для запросов"
4 5
---

6
# Разрешения для запросов {#permissions_for_queries}
7 8 9

Запросы в ClickHouse можно разделить на несколько типов:

10 11 12 13 14
1.  Запросы на чтение данных: `SELECT`, `SHOW`, `DESCRIBE`, `EXISTS`.
2.  Запросы за запись данных: `INSERT`, `OPTIMIZE`.
3.  Запросы на изменение настроек: `SET`, `USE`.
4.  [Запросы DDL](https://ru.wikipedia.org/wiki/Data_Definition_Language): `CREATE`, `ALTER`, `RENAME`, `ATTACH`, `DETACH`, `DROP` `TRUNCATE`.
5.  `KILL QUERY`.
15 16 17

Разрешения пользователя по типу запроса регулируются параметрами:

18
-   [readonly](#settings_readonly) — ограничивает разрешения для всех типов запросов, кроме DDL.
A
Alexey Milovidov 已提交
19
-   [allow_ddl](#settings_allow_ddl) — ограничивает разрешения для DDL запросов.
20 21 22

`KILL QUERY` выполняется с любыми настройками.

23
## readonly {#settings_readonly}
24 25 26 27 28 29 30

Ограничивает разрешения для запросов на чтение данных, запись данных и изменение параметров.

Разделение запросов по типам смотрите по тексту [выше](#permissions_for_queries) по тексту.

**Возможные значения**

31 32 33
-   0 — разрешены все запросы.
-   1 — разрешены только запросы на чтение данных.
-   2 — разрешены запросы на чтение данных и изменение настроек.
34

35
После установки `readonly = 1` или `2` пользователь не может изменить настройки `readonly` и `allow_ddl` в текущей сессии.
36

37
При использовании метода `GET` в [HTTP интерфейсе](../../interfaces/http.md#http-interface), `readonly = 1` устанавливается автоматически. Для изменения данных используйте метод `POST`.
38

39
Установка `readonly = 1` запрещает изменение всех настроек. Существует способ запретить изменения только некоторых настроек, см. [ограничения на изменение настроек](constraints-on-settings.md).
40

41 42 43 44
**Значение по умолчанию**

0

A
Alexey Milovidov 已提交
45
## allow_ddl {#settings_allow_ddl}
46 47 48 49 50 51 52

Разрешает/запрещает [DDL](https://ru.wikipedia.org/wiki/Data_Definition_Language) запросы.

Разделение запросов по типам смотрите по тексту [выше](#permissions_for_queries) по тексту.

**Возможные значения**

53 54
-   0 — DDL запросы не разрешены.
-   1 — DDL запросы разрешены.
55

56
Если `allow_ddl = 0`, то невозможно выполнить `SET allow_ddl = 1` для текущей сессии.
57 58 59 60 61

**Значение по умолчанию**

1