Перейти к основному содержимому
Перейти к основному содержимому

Разрешения для Запросов

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

  1. Запросы на чтение данных: SELECT, SHOW, DESCRIBE, EXISTS.
  2. Запросы на запись данных: INSERT, OPTIMIZE.
  3. Запросы на изменение настроек: SET, USE.
  4. DDL запросы: CREATE, ALTER, RENAME, ATTACH, DETACH, DROP, TRUNCATE.
  5. 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

KILL QUERY может быть выполнен с любой комбинацией настроек readonly и allow_ddl.