Skip to content

Обзор

Возможность создавать и управлять кластером 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 — удаление профиля настроек.

Особенности и ограничения

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

Доступные операции с пользователем

Операция
Комментарий
Просмотр списка пользователей в кластереПосмотрите полный список пользователей кластера
Просмотр информации о конкретном пользователеПосмотрите подробную информацию о любом пользователе
Создание пользователяСоздайте пользователя кластера, если хотите добавить новый доступ к управлению
Назначение роли пользователюПредоставьте пользователю привилегии, выданные указанной роли
Назначение привилегии пользователюПредоставьте пользователю конкретную привилегию
Просмотр ролей пользователяПосмотрите, какие роли назначены пользователю
Отзыв роли или привилегии у пользователяОтзовите указанные роли или привилегии у пользователя
Назначение профиля настроек пользователюНазначьте профиль настроек пользователю
Просмотр профиля настроек пользователяПосмотрите профиль настроек, назначенный пользователю
Отзыв профиля настроек у пользователяОтзовите назначенный профиль настроек у пользователя
Удаление пользователяУдалите пользователя, если этот доступ к управлению больше не нужен

Доступные операции с ролями

Операция
Комментарий
Просмотр списка ролей в кластереПосмотрите полный список ролей в кластере
Просмотр информации о конкретной ролиПосмотрите подробную информацию о любой роли
Создание ролиСоздайте новую роль без привилегий
Выдача привилегии ролиВыдайте привилегии роли
Просмотр привилегий ролиПосмотрите все привилегии, выданные роли
Отзыв привилегии у ролиОтзовите указанные привилегии у роли
Назначение профиля настроек ролиНазначьте профиль настроек роли
Просмотр профиля настроек ролиПосмотрите профиль настроек, назначенный роли
Отзыв профиля настроек у ролиОтзовите назначенный профиль настроек у роли
Настройка наследования ролиНастройте наследование роли другой ролью
Отзыв наследования ролиОтзовите наследование роли другой ролью
Удаление ролиУдалите роль, если она больше не нужна

Доступные операции с профилями настроек

Операция
Комментарий
Просмотр списка профилей настроек в кластереПосмотрите полный список профилей настроек в кластере
Просмотр информации о конкретном профиле настроекПосмотрите метаданные профиля настроек и его настройки
Просмотр назначения профиля настроек пользователям и ролямПосмотрите, каким пользователям и ролям назначен профиль настроек
Создание профиля настроекСоздайте новый уникальный профиль настроек
Удаление профиля настроекУдалите профиль настроек, если он больше не нужен