Разрешения для Запросов
Запросы в ClickHouse можно разделить на несколько типов:
- Запросы на чтение данных:
SELECT
,SHOW
,DESCRIBE
,EXISTS
. - Запросы на запись данных:
INSERT
,OPTIMIZE
. - Запросы на изменение настроек:
SET
,USE
. - DDL запросы:
CREATE
,ALTER
,RENAME
,ATTACH
,DETACH
,DROP
,TRUNCATE
. KILL QUERY
.
Следующие настройки регулируют разрешения пользователей в зависимости от типа запроса:
readonly
Ограничивает разрешения для запросов на чтение данных, запись данных и изменение настроек.
При установленном значении 1 разрешает:
- Все типы запросов на чтение (например, SELECT и эквивалентные запросы).
- Запросы, которые изменяют только контекст сеанса (например, USE).
При установленном значении 2 разрешает все вышеперечисленное плюс:
-
SET и CREATE TEMPORARY TABLE
подсказкаЗапросы, такие как EXISTS, DESCRIBE, EXPLAIN, SHOW PROCESSLIST и т.д. эквивалентны SELECT, поскольку они просто выбирают из системных таблиц.
Возможные значения:
- 0 — Разрешены запросы на чтение, запись и изменение настроек.
- 1 — Разрешены только запросы на чтение данных.
- 2 — Разрешены запросы на чтение данных и изменение настроек.
Значение по умолчанию: 0
После установки readonly = 1
пользователь не может изменять настройки readonly
и allow_ddl
в текущей сессии.
При использовании метода GET
в HTTP интерфейсе readonly = 1
устанавливается автоматически. Для изменения данных используйте метод POST
.
Установка readonly = 1
запрещает пользователю изменять настройки. Существует способ запретить пользователю изменять только определенные настройки. Также есть способ разрешить изменение только определенных настроек при ограничениях readonly = 1
. Для получения подробной информации см. ограничения на настройки.
allow_ddl
Разрешает или отказывается от выполнения DDL запросов.
Возможные значения:
- 0 — DDL запросы не разрешены.
- 1 — DDL запросы разрешены.
Значение по умолчанию: 1
Вы не можете выполнить SET allow_ddl = 1
, если allow_ddl = 0
для текущей сессии.
KILL QUERY
может быть выполнен с любой комбинацией настроек readonly и allow_ddl.