Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for ClickHouse®
  • Начало работы
    • Все инструкции
      • SQL-запросы в консоли управления
      • Управление базами данных
      • Управление пользователями БД
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Управление пользователями через SQL
  • Получить список пользователей
  • Создать пользователя
  • Изменить пароль
  • Изменить пароль пользователя admin
  • Изменить настройки пользователя
  • Удалить пользователя
  • Примеры
  • Создание пользователя с настройкой «только чтение»
  1. Пошаговые инструкции
  2. Базы данных
  3. Управление пользователями БД

Управление пользователями ClickHouse®

Статья создана
Yandex Cloud
Улучшена
Обновлена 18 июня 2025 г.
  • Управление пользователями через SQL
  • Получить список пользователей
  • Создать пользователя
  • Изменить пароль
  • Изменить пароль пользователя admin
  • Изменить настройки пользователя
  • Удалить пользователя
  • Примеры
    • Создание пользователя с настройкой «только чтение»

Managed Service for ClickHouse® позволяет управлять пользователями и их индивидуальными настройками двумя способами:

  • С помощью стандартных интерфейсов Yandex Cloud (консоль управления, CLI, Terraform, API). Способ подходит, если вы хотите добавлять, изменять и удалять пользователей и их индивидуальные настройки, используя возможности сервиса Yandex Managed Service for ClickHouse®.
  • С помощью SQL-запросов к кластеру. Способ подходит, если вы хотите использовать уже существующее у вас решение для создания и управления пользователями или если вы используете RBAC.

Важно

В кластере Managed Service for ClickHouse® можно одновременно использовать только один способ управления пользователями — с помощью стандартных интерфейсов или SQL-запросов.

Примечание

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

Управление пользователями через SQLУправление пользователями через SQL

Чтобы включить управление, выберите опцию Управление пользователями через SQL при создании или изменении настроек кластера.

Важно

Включенную настройку управления пользователями через SQL невозможно выключить.

В кластере с включенным управлением пользователями через SQL:

  • Управление пользователями через стандартные интерфейсы Yandex Cloud (консоль управления, CLI, API, Terraform) недоступно.
  • Существующие пользователи и настройки пользователей, созданные с помощью стандартных интерфейсов Yandex Cloud, будут сохранены.
  • Управление пользователями осуществляется с помощью учетной записи admin. Пароль для нее задается при выборе опции Управление пользователями через SQL.

Подробнее об управлении пользователями через SQL см. в документации ClickHouse®.

Получить список пользователейПолучить список пользователей

Консоль управления
CLI
REST API
gRPC API
SQL
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список пользователей кластера, выполните команду:

yc managed-clickhouse user list
   --cluster-name=<имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.List и выполните запрос, например, с помощью cURL:

    curl \
        --request GET \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/users'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.List и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/user_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>"
            }' \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.UserService.List
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Подключитесь к кластеру, используя учетную запись admin.

  2. Получите список пользователей:

    SHOW USERS;
    

Создать пользователяСоздать пользователя

Консоль управления
CLI
Terraform
REST API
gRPC API
SQL
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.

  2. Нажмите на имя нужного кластера и выберите вкладку Пользователи.

  3. Нажмите кнопку Создать пользователя.

  4. Введите имя пользователя базы данных.

    Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания. Максимальная длина имени — 32 символа.

  5. Выберите, как задать пароль:

    • Ввести вручную — ввести свой пароль. Длина пароля — от 8 до 128 символов.

    • Сгенерировать — сгенерировать пароль с помощью сервиса Connection Manager.

    Чтобы увидеть пароль, на странице кластера выберите вкладку Пользователи и нажмите Посмотреть пароль в строке нового пользователя. Откроется страница секрета Yandex Lockbox, в котором хранится пароль. Для просмотра паролей требуется роль lockbox.payloadViewer.

  6. Выберите одну или несколько баз данных, к которым должен иметь доступ пользователь:

    1. Нажмите на значок и выберите базу данных из выпадающего списка.
    2. Повторите предыдущий шаг, пока не будут выбраны все требуемые базы данных.
    3. Чтобы удалить базу, добавленную по ошибке, нажмите на значок справа от имени базы.
  7. Задайте дополнительные настройки для пользователя:

    1. Настройте квоты в разделе Дополнительные настройки → Quotas:
      1. Чтобы добавить квоту, нажмите на значок . Вы можете добавить несколько квот, которые будут действовать одновременно.
      2. Чтобы удалить квоту, нажмите на значок справа от имени квоты и выберите пункт Удалить.
      3. Чтобы изменить квоту, задайте требуемые значения настроек для нее.
    2. Настройте ClickHouse® в разделе Дополнительные настройки → Settings.
  8. Нажмите кнопку Создать.

См. также: пример создания пользователя с правами «только чтение».

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать пользователя в кластере, выполните команду:

yc managed-clickhouse user create <имя_пользователя> \
   --cluster-name=<имя_кластера> \
   --password=<пароль_пользователя> \
   --permissions=<список_БД> \
   --quota=<список_настроек_одной_квоты_для_пользователя> \
   --settings=<список_настроек_ClickHouse®_для_пользователя>

Где:

  • --cluster-name — имя кластера.

  • --password — пароль для пользователя. Длина пароля — от 8 до 128 символов.

    Пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого вместо --password=<пароль> укажите --generate-password.

    Чтобы увидеть пароль, в консоли управления выберите нужный кластер, перейдите на вкладку Пользователи и нажмите Посмотреть пароль в строке нового пользователя. Откроется страница секрета Yandex Lockbox, в котором хранится пароль. Для просмотра паролей требуется роль lockbox.payloadViewer.

  • --permissions — список БД, к которым пользователь должен иметь доступ.

Подробнее о квотах и настройках на уровне запроса читайте в разделе Настройки ClickHouse®.

Чтобы задать несколько квот, перечислите их, используя требуемое количество параметров --quota в команде:

yc managed-clickhouse user create <имя_пользователя> \
   ...
   --quota="<настройки_квоты_0>" \
   --quota="<настройки_квоты_1>" \
   ...

Имя кластера можно запросить со списком кластеров в каталоге.

См. также: пример создания пользователя с правами «только чтение».

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Добавьте ресурс yandex_mdb_clickhouse_user:

    resource "yandex_mdb_clickhouse_user" "<имя_пользователя>" {
      cluster_id = "<идентификатор_кластера>"
      name       = "<имя_пользователя>"
      password   = "<пароль>"
      permission {
        database_name = "<имя_БД>"
      }
      settings {
        <имя_параметра_1> = <значение_1>
        <имя_параметра_2> = <значение_2>
        ...
      }
    }
    

    Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания. Максимальная длина имени — 32 символа.

    Длина пароля — от 8 до 128 символов.

    Пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого вместо password = "<пароль>" укажите generate_password = true.

    Чтобы увидеть пароль, в консоли управления выберите нужный кластер, перейдите на вкладку Пользователи и нажмите Посмотреть пароль в строке нового пользователя. Откроется страница секрета Yandex Lockbox, в котором хранится пароль. Для просмотра паролей требуется роль lockbox.payloadViewer.

    Если кластер создается с помощью Terraform одновременно с созданием пользователя, то в ресурсе yandex_mdb_clickhouse_user вместо идентификатора кластера укажите ссылку на имя создаваемого кластера:

    
    resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
      name = "<имя_кластера>"
      ...
    }
    
    resource "yandex_mdb_clickhouse_user" "<имя_пользователя>" {
      cluster_id = yandex_mdb_clickhouse_cluster.<имя_кластера>.id
      name       = "<имя_пользователя>"
      ...
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Create и выполните запрос, например, с помощью cURL:

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      {
        "userSpec": {
          "name": "<имя_пользователя>",
          "password": "<пароль_пользователя>",
          "permissions": [
            {
              "databaseName": "<имя_БД>"
            }
          ],
          "settings": {<настройки_ClickHouse®>},
          "quotas": [
            {
              "intervalDuration": "<интервал_для_квоты>",
              "queries": "<суммарное_количество_запросов>",
              "errors": "<количество_запросов_с_ошибкой>",
              "resultRows": "<количество_строк_результата>",
              "readRows": "<количество_исходных_строк>",
              "executionTime": "<суммарное_время_выполнения>"
            },
            { <аналогичный_набор_настроек_для_квоты_2> },
            { ... },
            { <аналогичный_набор_настроек_для_квоты_N> }
          ]
        },
        { <аналогичный_набор_настроек_для_создаваемого_пользователя_2> },
        { ... },
        { <аналогичный_набор_настроек_для_создаваемого_пользователя_N> }
      }
      

      Где userSpec — массив, содержащий настройки создаваемых пользователей. Один элемент массива содержит настройки для одного пользователя и имеет следующую структуру:

      • name — имя пользователя. Оно может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания. Максимальная длина имени — 32 символа.

      • password — пароль пользователя. Длина пароля — от 8 до 128 символов.

        Пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого вместо "password": "<пароль_пользователя>" укажите "generatePassword": true.

        Чтобы увидеть пароль, в консоли управления выберите созданный кластер, перейдите на вкладку Пользователи и нажмите Посмотреть пароль в строке нужного пользователя. Откроется страница секрета Yandex Lockbox, в котором хранится пароль. Для просмотра паролей требуется роль lockbox.payloadViewer.

      • permissions — список БД, к которым пользователь должен иметь доступ.

        Список организован в виде массива параметров databaseName. Один параметр содержит имя отдельной БД.

      • settings — список настроек ClickHouse® для пользователя.

        Настройки задаются в виде пар ключ: значение, разделенных запятыми.

      • quotas — массив, содержащий настройки квот. Один элемент массива содержит настройки для одной квоты.

    2. Выполните запрос:

      curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/users' \
        --data '@body.json'
      

      Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

См. также: пример создания пользователя с правами «только чтение».

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Create и выполните запрос, например, с помощью gRPCurl:

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      {
        "cluster_id": "<идентификатор_кластера>",
        "user_spec": {
          "name": "<имя_пользователя>",
          "password": "<пароль_пользователя>",
          "permissions": [
            {
              "database_name": "<имя_БД>"
            }
          ],
          "settings": {<настройки_ClickHouse®>},
          "quotas": [
            {
              "interval_duration": "<интервал_для_квоты>",
              "queries": "<суммарное_количество_запросов>",
              "errors": "<количество_запросов_с_ошибкой>",
              "result_rows": "<количество_строк_результата>",
              "read_rows": "<количество_исходных_строк>",
              "execution_time": "<суммарное_время_выполнения>"
            },
            { <аналогичный_набор_настроек_для_квоты_2> },
            { ... },
            { <аналогичный_набор_настроек_для_квоты_N> }
          ]
        },
        { <аналогичный_набор_настроек_для_создаваемого_пользователя_2> },
        { ... },
        { <аналогичный_набор_настроек_для_создаваемого_пользователя_N> }
      }
      

      Где user_spec — массив, содержащий настройки создаваемых пользователей. Один элемент массива содержит настройки для одного пользователя и имеет следующую структуру:

      • name — имя пользователя. Оно может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания. Максимальная длина имени — 32 символа.

      • password — пароль пользователя. Длина пароля — от 8 до 128 символов.

        Пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого вместо "password": "<пароль_пользователя>" укажите "generate_password": true.

        Чтобы увидеть пароль, в консоли управления выберите созданный кластер, перейдите на вкладку Пользователи и нажмите Посмотреть пароль в строке нужного пользователя. Откроется страница секрета Yandex Lockbox, в котором хранится пароль. Для просмотра паролей требуется роль lockbox.payloadViewer.

      • permissions — список БД, к которым пользователь должен иметь доступ.

        Список организован в виде массива параметров database_name. Один параметр содержит имя отдельной БД.

      • settings — список настроек ClickHouse® для пользователя.

        Настройки задаются в виде пар ключ: значение, разделенных запятыми.

      • quotas — массив, содержащий настройки квот. Один элемент массива содержит настройки для одной квоты.

      Идентификатор кластера можно запросить со списком кластеров в каталоге.

    2. Выполните запрос:

      grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/user_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.UserService.Create \
        < body.json
      
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

См. также: пример создания пользователя с правами «только чтение».

  1. Подключитесь к кластеру, используя учетную запись admin.

  2. Создайте пользователя:

    CREATE USER <имя_пользователя> IDENTIFIED WITH sha256_password BY '<пароль_пользователя>';
    

    Примечание

    Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.

    Длина пароля от 8 до 128 символов.

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

Изменить парольИзменить пароль

Рекомендуется использовать интерфейсы Yandex Cloud, перечисленные ниже. Не используйте SQL для смены пароля, иначе после технического обслуживания пароль может измениться на прежний.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.

  2. Нажмите на имя нужного кластера и выберите вкладку Пользователи.

  3. Нажмите на значок и выберите пункт Изменить пароль.

  4. Выберите, как задать новый пароль:

    • Ввести вручную — ввести свой пароль. Длина пароля — от 8 до 128 символов.

    • Сгенерировать — сгенерировать пароль с помощью сервиса Connection Manager.

  5. Нажмите кнопку Изменить.

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

Для просмотра паролей требуется роль lockbox.payloadViewer.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы изменить пароль пользователя, выполните команду:

yc managed-clickhouse user update <имя_пользователя> \
   --cluster-name=<имя_кластера> \
   --password=<новый_пароль>

Длина пароля — от 8 до 128 символов.

Новый пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого вместо --password=<новый_пароль> укажите --generate-password.

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

Для просмотра паролей требуется роль lockbox.payloadViewer.

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Найдите ресурс yandex_mdb_clickhouse_user нужного пользователя.

  3. Измените значение поля password:

    resource "yandex_mdb_clickhouse_user" "<имя_пользователя>" {
      ...
      name     = "<имя_пользователя>"
      password = "<пароль>"
      ...
    }
    

    Длина пароля — от 8 до 128 символов.

    Новый пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого вместо password = "<новый_пароль>" укажите generate_password = true.

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

    Примечание

    Если старый пароль был сгенерирован, его нельзя перегенерировать с помощью Terraform из-за ограничений провайдера.

  4. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  5. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \
        --data '{
                  "updateMask": "password",
                  "password": "<новый_пароль>"
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае указан только один параметр: password.

    • password — новый пароль. Длина пароля — от 8 до 128 символов.

      Пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого измените содержимое поля data:

      {
        "updateMask": "generatePassword",
        "generatePassword": true
      }
      

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

      Для просмотра паролей требуется роль lockbox.payloadViewer.

    Идентификатор кластера можно запросить со списком кластеров в каталоге. Имя пользователя можно запросить со списком пользователей в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/user_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "user_name": "<имя_пользователя>",
              "update_mask": {
                "paths": [
                  "password"
                ]
              },
              "password": "<новый_пароль>"
            }' \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.UserService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае указан только один параметр: password.

    • password — новый пароль. Длина пароля — от 8 до 128 символов.

      Пароль также можно сгенерировать с помощью сервиса Connection Manager. Для этого измените содержимое параметра d:

      {
        "cluster_id": "<идентификатор_кластера>",
        "user_name": "<имя_пользователя>",
        "update_mask": {
          "paths": [
            "generate_password"
          ]
        },
        "generate_password": true
      }
      

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

      Для просмотра паролей требуется роль lockbox.payloadViewer

    Идентификатор кластера можно запросить со списком кластеров в каталоге. Имя пользователя можно запросить со списком пользователей в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Изменить пароль пользователя adminИзменить пароль пользователя admin

Рекомендуется использовать интерфейсы Yandex Cloud, перечисленные ниже. Не используйте SQL для смены пароля, иначе после технического обслуживания пароль может измениться на прежний.

CLI
Terraform
REST API
gRPC API

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы изменить пароль пользователя admin, выполните команду:

yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \
  --admin-password <новый_пароль_пользователя_admin>

Примечание

Длина пароля от 8 до 128 символов.

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

Совет

  • Для повышения безопасности вместо --admin-password используйте параметр --read-admin-password: новый пароль нужно будет ввести с клавиатуры, и он не сохранится в истории команд.
  • Чтобы сгенерировать пароль автоматически, используйте параметр --generate-admin-password. Ответ на команду будет содержать новый пароль.
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените значение поля admin_password:

    resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
      ...
      admin_password = "<пароль_пользователя_admin>"
      ...
    }
    

    Примечание

    Длина пароля от 8 до 128 символов.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \
        --data '{
                  "updateMask": "configSpec.adminPassword",
                  "configSpec": {
                    "adminPassword": "<новый_пароль>"
                  }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае указан только один параметр: configSpec.adminPassword.

    • configSpec.adminPassword — новый пароль пользователя.

      Длина пароля от 8 до 128 символов.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "update_mask": {
                "paths": [
                  "config_spec.admin_password"
                ]
              },
              "config_spec": {
                "admin_password": "<новый_пароль>"
              }
            }' \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае указан только один параметр: config_spec.admin_password.

    • config_spec.admin_password — новый пароль пользователя.

      Длина пароля от 8 до 128 символов.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Изменить настройки пользователяИзменить настройки пользователя

Консоль управления
CLI
Terraform
REST API
gRPC API
SQL
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера и выберите вкладку Пользователи.
  3. Нажмите на значок и выберите пункт Настроить.
  4. Настройте права пользователя на доступ к определенным базам данных:
    1. Чтобы предоставить доступ к требуемым базам данных:
      1. Нажмите на значок и выберите базу данных из выпадающего списка.
      2. Повторите предыдущий шаг, пока не будут выбраны все требуемые базы данных.
    2. Чтобы удалить базу, нажмите на значок справа от имени базы.
  5. Настройте квоты для пользователя в разделе Дополнительные настройки → Quotas:
    1. Чтобы добавить квоту, нажмите на значок . Вы можете добавить несколько квот, которые будут действовать одновременно.
    2. Чтобы удалить квоту, нажмите на значок справа от имени квоты и выберите пункт Удалить.
    3. Чтобы изменить квоту, задайте требуемые значения настроек для нее.
  6. Измените настройки ClickHouse® для пользователя в разделе Дополнительные настройки → Settings.
  7. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Из интерфейса командной строки можно изменить настройки пользователя:

  1. Чтобы настроить права пользователя на доступ к определенным базам данных, выполните команду, перечислив список имен баз данных с помощью параметра --permissions:

    yc managed-clickhouse user update <имя_пользователя> \
       --cluster-name=<имя_кластера> \
       --permissions=<список_БД>
    

    Имя кластера можно запросить со списком кластеров в каталоге.

    Эта команда предоставляет пользователю доступ к базам данных, указанным в списке.

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

  2. Чтобы изменить настройки квот для пользователя, выполните команду, перечислив список всех квот, с помощью параметров --quota (один параметр на каждую квоту):

    yc managed-clickhouse user update <имя_пользователя> \
       --cluster-name=<имя_кластера> \
       --quota=<настройки_квоты_0_(без_изменений)> \
       --quota=<настройки_квоты_1_(без_изменений)> \
       --quota=<настройки_квоты_2_(с_изменениями)> \
       --quota=<настройки_квоты_3_(без_изменений)> \
       --quota=<настройки_квоты_4_(с_изменениями)> \
       --quota=<настройки_квоты_5_(новая_квота)>
      ...
    

    Имя кластера можно запросить со списком кластеров в каталоге.

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

    Чтобы удалить одну или несколько квот пользователя, исключите настройки этих квот из набора и передайте команде обновленный набор параметров --quota.

    При задании интервала для квоты допустимо использовать запись с указанием единиц измерения: часов (h), минут (m), секунд (s) и миллисекунд (ms). Пример такой записи: 3h20m10s7000ms (итоговое значение представляется по-прежнему в миллисекундах: 12017000). Значение интервала должно быть кратно 1000 миллисекунд (значение вида 1s500ms является некорректным).

  3. Чтобы изменить настройки ClickHouse® для пользователя, выполните команду, перечислив измененные настройки с помощью параметра --settings:

    yc managed-clickhouse user update <имя_пользователя> \
       --cluster-name=<имя_кластера> \
       --settings=<список_настроек_ClickHouse®>
    

    Имя кластера можно запросить со списком кластеров в каталоге.

    Команда изменит только те настройки, которые явно указаны в параметре --settings. Например, команда с параметром --settings="readonly=1" изменит только настройку readonly и не сбросит значения остальных. Этим изменение настроек ClickHouse® отличается от изменения настроек квот.

    С помощью этой команды невозможно удалить сделанную настройку, допустимо только явно присвоить ей значение по умолчанию (оно указано для каждой настройки).

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Найдите ресурс yandex_mdb_clickhouse_user нужного пользователя.

  3. Чтобы настроить права пользователя на доступ к определенным базам данных, добавьте необходимое количество блоков permission — по одному на каждую базу:

    resource "yandex_mdb_clickhouse_user" "<имя_пользователя>" {
      ...
      name       = "<имя_пользователя>"
      password   = "<пароль>"
      permission {
        database_name = "<имя_БД_1>"
      }
      ...
      permission {
        database_name = "<имя_БД_N>"
      }
      ...
    }
    

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

  4. Чтобы изменить настройки квот для пользователя, добавьте необходимое количество блоков quota к его описанию.

    При описании квот обязательным является только поле interval_duration.

    resource "yandex_mdb_clickhouse_user" "<имя_пользователя>" {
      ...
      name       = "<имя_пользователя>"
      password   = "<пароль>"
      ...
      quota {
        interval_duration = <длительность_интервала_в_миллисекундах>
        ...
      }
    }
    
  5. Чтобы изменить настройки ClickHouse® для пользователя, добавьте блок settings к его описанию.

    resource "yandex_mdb_clickhouse_user" "<имя_пользователя>" {
      ...
      name       = "<имя_пользователя>"
      password   = "<пароль>"
      ...
      settings {
        <имя_параметра_1> = <значение_1>
        <имя_параметра_2> = <значение_2>
        ...
      }
    }
    
  6. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  7. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>' \
        --data '{
                  "updateMask": "<перечень_изменяемых_настроек>",
                  "permissions": [ <обновленный_список_БД> ],
                  "settings": { <настройки_ClickHouse®> },
                  "quotas": [ <обновленный_список_настроек_квот> ]
                }'
    

    Где updateMask — перечень изменяемых параметров в одну строку через запятую.

    Укажите нужные параметры, чтобы изменить отдельные категории настроек:

    • Чтобы изменить список БД, к которым пользователь должен иметь доступ, передайте в параметре permissions обновленный список БД.

      Список организован в виде массива параметров databaseName. Один параметр содержит имя отдельной БД.

      Важно

      Существующий в кластере список БД будет полностью перезаписан списком, переданным в параметре permissions.

      Перед выполнением запроса убедитесь, что вы включили в этот список все нужные БД, в том числе существующие.

    • Чтобы изменить настройки ClickHouse® для пользователя, передайте в параметре settings нужные настройки с новыми значениями.

    • Чтобы изменить настройки квот, передайте в параметре quotas обновленный список с настройками квот.

      Список организован в виде массива. Один элемент массива содержит настройки для одной квоты.

      Важно

      Существующий в кластере список настроек квот будет полностью перезаписан списком, переданным в параметре quotas.

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

    Идентификатор кластера можно запросить со списком кластеров в каталоге. Имя пользователя можно запросить со списком пользователей в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/user_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "user_name": "<имя_пользователя>",
              "update_mask": {
                "paths": [
                  <перечень_изменяемых_настроек>
                ]
              },
              "permissions": [ <обновленный_список_БД> ],
              "settings": { <настройки_ClickHouse®> },
              "quotas": [ <обновленный_список_настроек_квот> ]
            }' \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.UserService.Update
    

    Где update_mask — перечень изменяемых параметров в виде массива строк paths[].

    Укажите нужные параметры, чтобы изменить отдельные категории настроек:

    • Чтобы изменить список БД, к которым пользователь должен иметь доступ, передайте в параметре permissions обновленный список БД.

      Список организован в виде массива параметров database_name. Один параметр содержит имя отдельной БД.

      Важно

      Существующий в кластере список БД будет полностью перезаписан списком, переданным в параметре permissions.

      Перед выполнением запроса убедитесь, что вы включили в этот список все нужные БД, в том числе существующие.

    • Чтобы изменить настройки ClickHouse® для пользователя, передайте в параметре settings нужные настройки с новыми значениями.

    • Чтобы изменить настройки квот, передайте в параметре quotas обновленный список с настройками квот.

      Список организован в виде массива. Один элемент массива содержит настройки для одной квоты.

      Важно

      Существующий в кластере список настроек квот будет полностью перезаписан списком, переданным в параметре quotas.

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

    Идентификатор кластера можно запросить со списком кластеров в каталоге. Имя пользователя можно запросить со списком пользователей в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Подключитесь к кластеру, используя учетную запись admin.

  2. Чтобы изменить набор привилегий и ролей пользователя, используйте запросы GRANT и REVOKE. Например, выдайте пользователю права на чтение всех объектов в определенной базе данных:

    GRANT SELECT ON <имя_базы_данных>.* TO <имя_пользователя>;
    
  3. Чтобы изменить настройки квот для пользователя, используйте запросы CREATE QUOTA, ALTER QUOTA и DROP QUOTA. Например, ограничьте суммарное количество запросов пользователя за период 15 месяцев:

    CREATE QUOTA <название_квоты> FOR INTERVAL 15 MONTH MAX QUERIES 100 TO <имя_пользователя>;
    
  4. Чтобы изменить учетную запись пользователя, используйте запрос ALTER USER. Например для изменения настроек ClickHouse® выполните следующую команду, перечислив настройки подлежащие изменению:

    ALTER USER <имя_пользователя> SETTINGS <список_настроек_ClickHouse®>;
    

Удалить пользователяУдалить пользователя

Консоль управления
CLI
Terraform
REST API
gRPC API
SQL
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера и выберите вкладку Пользователи.
  3. Нажмите на значок и выберите пункт Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы удалить пользователя, выполните команду:

yc managed-clickhouse user delete <имя_пользователя> \
   --cluster-name=<имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Удалите ресурс yandex_mdb_clickhouse_user с описанием нужного пользователя.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом User.Delete и выполните запрос, например, с помощью cURL:

    curl \
        --request DELETE \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/users/<имя_пользователя>'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге. Имя пользователя можно запросить со списком пользователей в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом UserService.Delete и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/user_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>",
                "user_name": "<имя_пользователя>"
            }' \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.UserService.Delete
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге. Имя пользователя можно запросить со списком пользователей в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Подключитесь к кластеру, используя учетную запись admin.

  2. Удалите пользователя:

    DROP USER <имя_пользователя>;
    

Подробнее об удалении объектов см. в документации ClickHouse®.

ПримерыПримеры

Создание пользователя с настройкой «только чтение»Создание пользователя с настройкой «только чтение»

Допустим, нужно добавить в существующий кластер с именем mych и идентификатором cat0adul1fj0******** нового пользователя ro-user с паролем Passw0rd, причем:

  • пользователь должен иметь доступ к базе данных db1 кластера;
  • доступ должен осуществляться в режиме «только чтение» (readonly), без возможности изменения настроек.
Консоль управления
CLI
Terraform
REST API
gRPC API
SQL
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на кластер с именем mych и выберите вкладку Пользователи.
  3. Нажмите кнопку Создать пользователя.
  4. Введите имя пользователя базы данных ro-user и пароль Passw0rd.
  5. Нажмите на значок и выберите базу данных db1 из выпадающего списка.
  6. Выберите Дополнительные настройки → Settings → Readonly.
  7. В поле Readonly укажите значение 1.
  8. Нажмите кнопку Создать.

Запустите следующую команду:

yc managed-clickhouse user create "ro-user" \
   --cluster-name="mych" \
   --password="Passw0rd" \
   --permissions="db1" \
   --settings="readonly=1"

После создания пользователя проверьте, что он действительно работает в режиме «только чтение»:

  1. Подключитесь к кластеру mych, используя созданного пользователя ro-user.

  2. Попытайтесь изменить какую-нибудь настройку, например, попытайтесь отключить режим «только чтение»:

    SET readonly=0
    

    В результате выполнения команды должно отобразиться сообщение о невозможности изменения настройки в режиме «только чтение»:

    DB::Exception: Cannot modify 'readonly' setting in readonly mode.
    
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Добавьте ресурс yandex_mdb_clickhouse_user.

    resource "yandex_mdb_clickhouse_user" "ro-user" {
      cluster_id = "cat0adul1fj0********"
      name = "ro-user"
      password = "Passw0rd"
      permission {
        database_name = "db1"
      }
      settings {
        readonly = 1
      }
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Выполните запрос c помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/cat0adul1fj0********/users' \
        --data '{
                  "userSpec": {
                    "name": "ro-user",
                    "password": "Passw0rd",
                    "permissions": [
                      {
                        "databaseName": "db1"
                      }
                    ],
                    "settings": {
                      "readonly": "1"
                    }
                  }
                }'
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Выполните запрос с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/user_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "cat0adul1fj0********",
              "user_spec": {
                "name": "ro-user",
                "password": "Passw0rd",
                "permissions": [
                  {
                    "database_name": "db1"
                  }
                ],
                "settings": {
                  "readonly": "1"
                }
              }
            }' \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.UserService.Create
    
  1. Подключитесь к кластеру mych, используя учетную запись admin.

  2. Создайте пользователя:

    CREATE USER ro-user IDENTIFIED WITH sha256_password BY 'Passw0rd';
    
  3. Выдайте пользователю права на чтение всех объектов базы данных db1:

    GRANT SELECT ON db1.* TO ro-user;
    

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

Была ли статья полезна?

Предыдущая
Управление базами данных
Следующая
Управление собственной геобазой
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»