Облачная платформаAdvanced

Настройка прав пользователей ClickHouse

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Вы можете централизованно управлять пользователями, ролями и правами на каждом узле ClickHouse в кластере. Вы можете контролировать права пользователей, создавая роли, создавая пользователей и привязывая роли к пользователям в консоли.

Примечания

  • Операция удаления необратима. Даже если роль с тем же именем будет добавлена сразу после удаления, её права могут отличаться от прав удалённой роли. Убедитесь, что роль не используется перед удалением.
  • Перед удалением пользователя убедитесь, что он больше не нужен. Операция удаления необратима. Даже если учётная запись с тем же именем будет добавлена сразу после удаления, её права могут отличаться от прав удалённой учётной записи.
  • Эта админ, root, и по умолчанию пользователи являются пользователями по умолчанию в кластере ClickHouse и не могут быть удалены.
  • Можно изменять только пароли пользователей из списка пользователей. Пароли root Пользователь и пользователи по умолчанию не могут быть изменены.
  • Пользователи и роли нельзя создавать для отдельного узла в кластере.
  • Если разрешения на таблицу предоставлены роли, разрешения таблицы не удаляются при удалении таблицы. Если создаётся таблица с тем же именем, роль наследует исходные разрешения на таблицу. При необходимости вы можете вручную удалить предоставленные роли разрешения таблицы.
  • Если у пользователя A есть разрешения на работу с таблицей B, пользователь A должен вручную отозвать эти разрешения перед удалением таблицы B. Если этого не сделать, пользователь A сохранит те же разрешения на любую новую таблицу B, созданную пользователем C.
  • Пароль существующей учётной записи нельзя просмотреть. Если вы забудете пароль, вы можете сбросить его.

Prerequisites

  • Кластер ClickHouse был создан и работает корректно.
  • Вы установили клиент ClickHouse.

Шаг 1: Создать роль ClickHouse

  1. Войдите в консоль CloudTable.
  2. Нажмите Управление кластером. На отображаемой странице списка кластеров выберите целевой кластер и выберите Имя кластера > Управление ролями. Отображается страница управления ролями.
  3. Нажмите Создать роль. На отображаемой странице укажите параметры ниже.

    Таблица 1 Разрешения роли

    Параметр

    Описание

    Имя роли

    Имя роли должно начинаться с буквы и может содержать от 1 до 64 символов.

    Глобальное разрешение

    Глобальные разрешения относятся к разрешениям на всех базах данных и таблицах, включая SELECT, LOAD, ALTER, CREATE, и DROP разрешения.

    Каждое разрешение уровня

    База данных и таблица относится к базам данных и таблицам, созданным в кластере.

    • Роль имеет рискованные разрешения для баз данных, но только общие разрешения для таблиц.
    • Тип разрешения
      • Рискованные разрешения: CREATE TABLE, DROP TABLE, CREATE VIEW, и УДАЛИТЬ VIEW
      • Общие разрешения: SELECT, LOAD, и ALTER

  4. Нажмите OK.

Шаг 2 Создать пользователя ClickHouse

  1. После создания роли выберите Управление учетной записью.
  2. Нажмите Создать учетную запись. На Создать учетную запись странице, задайте имя пользователя и пароль.

    Таблица 2 Параметры пользователя

    Параметр

    Описание

    Имя пользователя

    Новое имя пользователя должно начинаться с буквы и содержать от 1 до 64 символов.

    Пароль

    Введите пароль для пользователя.

    ПРИМЕЧАНИЕ:

    Пароль должен соответствовать следующим требованиям:

    • Содержать от 8 до 16 символов.
    • Содержать как минимум четыре типа следующих символов: заглавные буквы, строчные буквы, цифры и специальные символы ($@!%*?&)
    • Не может совпадать с именем пользователя или именем пользователя, написанным задом наперед.

    Подтвердите пароль

    Введите пароль еще раз.

  3. Нажмите ОК.

Шаг 3: Привязать роль к пользователю ClickHouse

Например, роль A имеет право выполнять запросы, вставлять, изменять, создавать и удалять данные. После привязки к роли A пользователь получает разрешения роли A.

  1. После создания роли и пользователя выберите Account Management, найдите целевую учетную запись, щелкните More, и выберите Assign Role в Operation столбце.
  2. В Assign Role диалоговом окне, выберите роль. Затем щелкните OK.
  3. Click Permission в Operation столбце и проверьте, что у пользователя есть разрешения роли.
  4. Подключитесь к кластеру как созданный пользователь.

    Подробную информацию о том, как подключиться к кластеру без безопасности, см. Использование клиента для подключения к ClickHouse Normal Cluster.

    ./clickhouse client --host Internal IP address of the cluster --port 9000 --user admin --password Password

    Для получения подробностей о том, как подключиться к кластеру безопасности, см Использование ClickHouse Client для подключения к кластеру.

    ./clickhouse client --host Internal IP address of the cluster --port 9440 --user admin --password Password --secure --config-file /root/config.xml

  5. Выполните запрос, а также команды insert, change, create и delete в CLI.

    • Если эти команды могут быть выполнены, роль успешно привязана.
    • Если эти команды не могут быть выполнены, проверьте, настроены ли у роли разрешения и привязана ли она к пользователю. Если проблема сохраняется, обращайтесь в техническую поддержку.

Управление разрешениями пользователей

  • Управление ролями
    • Удаление роли: нажмите Удалить в Операция столбец. На отображаемой странице введите DELETE в текстовое поле или нажмите Авто ввод, и нажмите OK.
    • Изменение прав роли: Нажмите Редактировать в Операция столбце. На отображаемой странице выберите необходимые права и нажмите OK.
    • Просмотр прав роли: Нажмите Разрешение в Операция столбце. На отображаемой странице просмотрите права роли на базах данных и таблицах.
  • Управление пользователями
    • Просмотр прав пользователя: Нажмите Разрешение в Операция столбце. На отображаемой странице просмотрите разрешения пользователя на базы данных и таблицы.
    • Удаление пользователя: Щелкните Удалить в Операция столбце. В отображаемом диалоговом окне щелкните Да.
    • Изменение пароля пользователя: Щелкните Дополнительно и выберите Обновить пароль в Операция столбце. На отображаемой странице измените пароль и щелкните OK.

Общие команды для разрешений пользователей

  • Команды, используемые для предоставления разрешений пользователям, объединяющим storage-compute
    1. Создание роли (role_name указывает имя роли, которую нужно создать)
      CREATE role IF NOT EXISTS 'role_name' ON CLUSTER default_cluster;
    2. Назначение разрешений роли
      • Предоставление всех прав создания (database and table) permissions
        GRANT CREATE ON *.* TO role1 ON CLUSTER default_cluster;
      • Предоставление права создания таблиц в test_db база данных
        GRANT CREATE TABLE ON test_db.* TO role1;
      • Предоставление права удаления всех баз данных и таблиц
        GRANT DROP ON test_db.* TO role1;
    3. Удаление роли
      DROP ROLE 'role_name' ON CLUSTER default_cluster;
    4. Создание пользователя
      CREATE USER IF NOT EXISTS name ON CLUSTER default_cluster IDENTIFIED WITH sha256_password BY 'password';
    5. Указание IP-адреса
      CREATE USER name HOST IP '127.0.0.x' IDENTIFIED WITH sha256_password BY 'password';
    6. Изменение пароля пользователя
      ALTER USER IF EXISTS name ON CLUSTER default_cluster IDENTIFIED WITH sha256_password BY 'password';
    7. Назначение роли пользователю
      GRANT role1, role2 TO new_user ON CLUSTER default_cluster;
    8. Отмена назначения роли
      REVOKE role1 FROM user ON CLUSTER default_cluster;
    9. Удаление пользователя
      DROP USER IF EXISTS 'name1' ON CLUSTER default_cluster;
    10. Запрос разрешений и ролей пользователя
      • Запрос разрешений пользователя
        show grants for all;
      • Запрос разрешений роли
        show grants for role1;