Права для запросов
Запросы в 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.