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

Обзор

Возможность создавать и управлять кластером Managed ClickHouse регулируется IAM-ролями. Однако внутри кластера доступ к данным и возможность выполнять операции определяет RBAC (Role-Based Access Control) — модель управления правами на основе ролей.

Основные компоненты модели RBAC: пользователи, привилегии, роли и профили настроек.

Пользователь — внутренняя учетная запись ClickHouse для аутентификации в кластере. С каждым кластером автоматически создается его первый пользователь — администратор.

Для работы с данными пользователю нужны права, которые выдаются ему в виде привилегий напрямую или через роли. Параметры сессии пользователя задаются профилем настроек, который назначается ему напрямую или через роль.

Привилегия — разрешение на выполнение действий внутри кластера. Список всех возможных привилегий доступен в официальной документации ClickHouse.

Привилегии могут выдаваться пользователю напрямую по одной или готовым набором. Такой набор называется ролью. Одному пользователю может быть назначено несколько ролей, тогда все привилегии из всех назначенных ролей суммируются.

Между ролями можно настраивать наследование. Тогда роль-наследник всегда будет использовать привилегии роли-источника.

Управлять пользователями и ролями позволяет привилегия ACCESS MANAGEMENT. Этой привилегией обладает администратор кластера или пользователь, которому администратор ее выдал. Например, ACCESS MANAGEMENT позволяет выполнять такие команды:

  • CREATE USER, DROP USER — создание и удаление пользователей;
  • CREATE ROLE, DROP ROLE — создание и удаление ролей;
  • GRANT, REVOKE — выдача и отзыв привилегий;
  • SHOW USERS, SHOW ROLES, SHOW GRANTS — просмотр списков пользователей, ролей и выданных привилегий.

Для управления базами данных и таблицами используются привилегии на объекты. Например, пользователю или роли можно выдать такие привилегии:

  • CREATE — создание базы данных или таблицы;
  • SELECT — чтение данных;
  • INSERT — вставка данных;
  • ALTER — изменение структуры таблицы;
  • DROP — удаление таблицы или базы данных;
  • ALL — все привилегии на указанный объект.

При выдаче привилегий объекты задаются в формате:

  • *.* — все базы и таблицы;
  • <имя базы данных>.* — все таблицы в базе;
  • <имя базы данных>.<имя таблицы> — конкретная таблица.

Профиль настроек — набор ограничений на запросы пользователя, позволяющий защитить кластер от перегрузки и обеспечить стабильность работы. Эти ограничения задаются настройками ClickHouse. Примеры настроек:

  • max_memory_usage — максимальный объем оперативной памяти на один запрос;
  • max_execution_time — максимальное время выполнения запроса;
  • readonly — режим «только чтение»;
  • log_queries — включение логирования всех запросов.

Полный список настроек доступен в документации ClickHouse.

При создании кластера Managed ClickHouse автоматически создается профиль default с ограничениями для защиты кластера от перегрузки. Этот профиль будет по умолчанию использоваться каждым новым пользователем.

Профиль настроек можно назначать и пользователям, и ролям. На уровне пользователя всегда действует только один профиль настроек. Если назначено сразу несколько профилей настроек (например, один напрямую пользователю и один его роли), то ClickHouse произвольно применит только один из них.

Управлять профилями настроек позволяет привилегия ACCESS MANAGEMENT с помощью команд:

  • CREATE SETTINGS PROFILE — создание профиля настроек;
  • ALTER SETTINGS PROFILE — изменение профиля настроек;
  • DROP SETTINGS PROFILE — удаление профиля настроек.

После удаления восстановить пользователя, роль и профиль настроек невозможно.