Управление пользователями ClickHouse®
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:
- Управление пользователями через стандартные интерфейсы Yandex Cloud (консоль управления, CLI, API, Terraform) недоступно.
- Существующие пользователи и настройки пользователей, созданные с помощью стандартных интерфейсов Yandex Cloud, будут сохранены.
- Управление пользователями осуществляется с помощью учетной записи
admin
. Пароль для нее задается при выборе опции Управление пользователями через SQL.
Подробнее об управлении пользователями через SQL см. в документации ClickHouse®
Получить список пользователей
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера, затем выберите вкладку Пользователи.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список пользователей кластера, выполните команду:
yc managed-clickhouse user list
--cluster-name=<имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
Чтобы получить список пользователей, воспользуйтесь методом REST API list для ресурса User или вызовом gRPC API UserService/List и передайте в запросе идентификатор кластера в параметре clusterId
.
Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Подключитесь к кластеру, используя учетную запись
admin
. -
Получите список пользователей:
SHOW USERS;
Создать пользователя
-
В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. -
Нажмите на имя нужного кластера и выберите вкладку Пользователи.
-
Нажмите кнопку Создать пользователя.
-
Введите имя пользователя базы данных и пароль.
Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.
Длина пароля от 8 до 128 символов.
-
Выберите одну или несколько баз данных, к которым должен иметь доступ пользователь:
- Нажмите на значок
и выберите базу данных из выпадающего списка. - Повторите предыдущий шаг, пока не будут выбраны все требуемые базы данных.
- Чтобы удалить базу, добавленную по ошибке, нажмите на значок
справа от имени базы.
- Нажмите на значок
-
Задайте дополнительные настройки для пользователя:
- Настройте квоты в разделе Дополнительные настройки → Quotas:
- Чтобы добавить квоту, нажмите на значок
. Вы можете добавить несколько квот, которые будут действовать одновременно. - Чтобы удалить квоту, нажмите на значок
справа от имени квоты и выберите пункт Удалить. - Чтобы изменить квоту, задайте требуемые значения настроек для нее.
- Чтобы добавить квоту, нажмите на значок
- Настройте ClickHouse® в разделе Дополнительные настройки → Settings.
- Настройте квоты в разделе Дополнительные настройки → Quotas:
-
Нажмите кнопку Создать.
См. также: пример создания пользователя с правами «только чтение».
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать пользователя в кластере, выполните команду:
yc managed-clickhouse user create <имя_пользователя> \
--cluster-name=<имя_кластера> \
--password=<пароль_пользователя> \
--permissions=<список_БД> \
--quota=<список_настроек_одной_квоты_для_пользователя> \
--settings=<список_настроек_ClickHouse®_для_пользователя>
Где --permissions
— список БД, к которым пользователь должен иметь доступ.
Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.
Длина пароля от 8 до 128 символов.
Подробнее о квотах и настройках на уровне запроса читайте в разделе Настройки ClickHouse®.
Чтобы задать несколько квот, перечислите их, используя требуемое количество параметров --quota
в команде:
yc managed-clickhouse user create <имя_пользователя> \
...
--quota="<настройки_квоты_0>" \
--quota="<настройки_квоты_1>" \
...
Имя кластера можно запросить со списком кластеров в каталоге.
См. также: пример создания пользователя с правами «только чтение».
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Добавьте к описанию кластера Managed Service for ClickHouse® блок
user
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... user { name = "<имя_пользователя>" password = "<пароль>" ... } }
Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.
Длина пароля от 8 до 128 символов.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы создать пользователя, воспользуйтесь методом REST API create для ресурса User или вызовом gRPC API UserService/Create и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Идентификатор кластера можно получить со списком кластеров в каталоге. - Имя нового пользователя в параметре
userSpec.name
. - Пароль нового пользователя в параметре
userSpec.password
. - (Опционально) Список баз, к которым пользователь должен иметь доступ, в параметре
userSpec.permissions[]
. - (Опционально) Список настроек ClickHouse® для пользователя в параметре
userSpec.settings
. - (Опционально) Список настроек квот для пользователя в параметре
userSpec.quotas[]
.
-
Подключитесь к кластеру, используя учетную запись
admin
. -
Создайте пользователя:
CREATE USER <имя_пользователя> IDENTIFIED WITH sha256_password BY '<пароль_пользователя>';
Примечание
Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.
Длина пароля от 8 до 128 символов.
Подробнее о создании пользователей см. в документации ClickHouse®
Изменить пароль
Рекомендуется использовать интерфейсы Yandex Cloud, перечисленные ниже. Не используйте SQL для смены пароля, иначе после технического обслуживания пароль может измениться на прежний.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Пользователи.
- Нажмите на значок
и выберите пункт Изменить пароль. - Задайте новый пароль и нажмите кнопку Изменить.
Примечание
Длина пароля от 8 до 128 символов.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить пароль пользователя, выполните команду:
yc managed-clickhouse user update <имя_пользователя> \
--cluster-name=<имя_кластера> \
--password=<новый_пароль>
Примечание
Длина пароля от 8 до 128 символов.
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Найдите в описании кластера Managed Service for ClickHouse® блок
user
для нужного пользователя. -
Измените значение поля
password
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... user { name = "<имя_пользователя>" password = "<новый_пароль>" ... } }
Примечание
Длина пароля от 8 до 128 символов.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы изменить пароль, воспользуйтесь методом REST API update для ресурса User или вызовом gRPC API UserService/Update и передайте в запросе:
-
Идентификатор кластера в параметре
clusterId
. Чтобы узнать идентификатор, получите список кластеров в каталоге. -
Новый пароль в параметре
password
.Примечание
Длина пароля от 8 до 128 символов.
-
Список полей конфигурации пользователя, которые необходимо изменить (в данном случае —
password
), в параметреupdateMask
.
Важно
Этот метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).
Изменить пароль пользователя admin
Рекомендуется использовать интерфейсы Yandex Cloud, перечисленные ниже. Не используйте SQL для смены пароля, иначе после технического обслуживания пароль может измениться на прежний.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить пароль пользователя admin
, выполните команду:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \
--admin-password <новый_пароль_пользователя_admin>
Примечание
Длина пароля от 8 до 128 символов.
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
Совет
- Для повышения безопасности вместо
--admin-password
используйте параметр--read-admin-password
: новый пароль нужно будет ввести с клавиатуры, и он не сохранится в истории команд. - Чтобы сгенерировать пароль автоматически, используйте параметр
--generate-admin-password
. Ответ на команду будет содержать новый пароль.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените значение поля
admin_password
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... admin_password = "<пароль_пользователя_admin>" ... }
Примечание
Длина пароля от 8 до 128 символов.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы изменить пароль пользователя admin
, воспользуйтесь методом REST API update для ресурса Cluster или вызовом gRPC API ClusterService/Update и передайте в запросе:
-
Идентификатор кластера в параметре
clusterId
. Чтобы узнать идентификатор, получите список кластеров в каталоге. -
Новый пароль в параметре
configSpec.adminPassword
.Примечание
Длина пароля от 8 до 128 символов.
-
Список полей конфигурации пользователя, которые необходимо изменить (в данном случае —
configSpec.adminPassword
), в параметреupdateMask
.
Важно
Этот метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).
Изменить настройки пользователя
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Пользователи.
- Нажмите на значок
и выберите пункт Настроить. - Настройте права пользователя на доступ к определенным базам данных:
- Чтобы предоставить доступ к требуемым базам данных:
- Нажмите на значок
и выберите базу данных из выпадающего списка. - Повторите предыдущий шаг, пока не будут выбраны все требуемые базы данных.
- Нажмите на значок
- Чтобы удалить базу, нажмите на значок
справа от имени базы.
- Чтобы предоставить доступ к требуемым базам данных:
- Настройте квоты для пользователя в разделе Дополнительные настройки → Quotas:
- Чтобы добавить квоту, нажмите на значок
. Вы можете добавить несколько квот, которые будут действовать одновременно. - Чтобы удалить квоту, нажмите на значок
справа от имени квоты и выберите пункт Удалить. - Чтобы изменить квоту, задайте требуемые значения настроек для нее.
- Чтобы добавить квоту, нажмите на значок
- Измените настройки ClickHouse® для пользователя в разделе Дополнительные настройки → Settings.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Из интерфейса командной строки можно изменить настройки пользователя:
-
Чтобы настроить права пользователя на доступ к определенным базам данных, выполните команду, перечислив список имен баз данных с помощью параметра
--permissions
:yc managed-clickhouse user update <имя_пользователя> \ --cluster-name=<имя_кластера> \ --permissions=<список_БД>
Имя кластера можно запросить со списком кластеров в каталоге.
Эта команда предоставляет пользователю доступ к базам данных, указанным в списке.
Чтобы отозвать доступ к определенной базе, исключите ее имя из списка и передайте команде обновленный список.
-
Чтобы изменить настройки квот для пользователя, выполните команду, перечислив список всех квот, с помощью параметров
--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
является некорректным). -
Чтобы изменить настройки ClickHouse® для пользователя, выполните команду, перечислив измененные настройки с помощью параметра
--settings
:yc managed-clickhouse user update <имя_пользователя> \ --cluster-name=<имя_кластера> \ --settings=<список_настроек_ClickHouse®>
Имя кластера можно запросить со списком кластеров в каталоге.
Команда изменит только те настройки, которые явно указаны в параметре
--settings
. Например, команда с параметром--settings="readonly=1"
изменит только настройкуreadonly
и не сбросит значения остальных. Этим изменение настроек ClickHouse® отличается от изменения настроек квот.С помощью этой команды невозможно удалить сделанную настройку, допустимо только явно присвоить ей значение по умолчанию (оно указано для каждой настройки).
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Чтобы настроить права пользователя на доступ к определенным базам данных, добавьте необходимое количество блоков
permission
к описанию пользователя кластера — по одному на каждую базу:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... user { name = "<имя_пользователя>" password = "<пароль>" permission { database_name = "<база_данных_1>" } ... permission { database_name = "<база_данных_N>" } } }
В поле
database_name
укажите имя базы данных, к которой нужно предоставить доступ. -
Чтобы изменить настройки квот для пользователя, добавьте необходимое количество блоков
quota
к его описанию.При описании квот обязательным является только поле
interval_duration
.resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... user { name = "<имя_пользователя>" password = "<пароль>" ... quota { interval_duration = <длительность_интервала_в_миллисекундах> ... } } }
-
Чтобы изменить настройки ClickHouse® для пользователя, добавьте блок
settings
к его описанию.resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... user { name = "<имя_пользователя>" password = "<пароль>" ... settings { <настройки_СУБД_для_отдельного_пользователя> } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы изменить настройки пользователя, воспользуйтесь методом REST API update для ресурса User или вызовом gRPC API UserService/Update и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Чтобы узнать идентификатор, получите список кластеров в каталоге. - Имя пользователя, настройки которого будут изменены, в параметре
userName
. Чтобы узнать имя, получите список пользователей. - (Опционально) Список баз, к которым пользователь должен иметь доступ, в параметре
userSpec.permissions[]
. - (Опционально) Список настроек ClickHouse® для пользователя в параметре
userSpec.settings
. - (Опционально) Список настроек квот для пользователя в параметре
userSpec.quotas[]
. - Список полей конфигурации пользователя, которые необходимо изменить, в параметре
updateMask
.
Важно
Этот метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).
-
Подключитесь к кластеру, используя учетную запись
admin
. -
Чтобы изменить набор привилегий и ролей пользователя, используйте запросы GRANT
и REVOKE . Например, выдайте пользователю права на чтение всех объектов в определенной базе данных:GRANT SELECT ON <имя_базы_данных>.* TO <имя_пользователя>;
-
Чтобы изменить настройки квот для пользователя, используйте запросы CREATE QUOTA
, ALTER QUOTA и DROP QUOTA . Например, ограничьте суммарное количество запросов пользователя за период 15 месяцев:CREATE QUOTA <название_квоты> FOR INTERVAL 15 MONTH MAX QUERIES 100 TO <имя_пользователя>;
-
Чтобы изменить учетную запись пользователя, используйте запрос ALTER USER
. Например для изменения настроек ClickHouse® выполните следующую команду, перечислив настройки подлежащие изменению:ALTER USER <имя_пользователя> SETTINGS <список_настроек_ClickHouse®>;
Удалить пользователя
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Пользователи.
- Нажмите на значок
и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы удалить пользователя, выполните команду:
yc managed-clickhouse user delete <имя_пользователя> \
--cluster-name=<имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Удалите из описания кластера Managed Service for ClickHouse® блок
user
с описанием нужного пользователя. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы удалить пользователя, воспользуйтесь методом REST API delete для ресурса User или вызовом gRPC API UserService/Delete и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Чтобы узнать идентификатор, получите список кластеров в каталоге. - Имя пользователя, настройки которого будут изменены, в параметре
userName
. Чтобы узнать имя, получите список пользователей.
-
Подключитесь к кластеру, используя учетную запись
admin
. -
Удалите пользователя:
DROP USER <имя_пользователя>;
Подробнее об удалении объектов см. в документации ClickHouse®
Примеры
Создание пользователя с настройкой «только чтение»
Допустим, нужно добавить в существующий кластер с именем mych
нового пользователя ro-user
с паролем Passw0rd
, причем:
- пользователь должен иметь доступ к базе данных
db1
кластера; - доступ должен осуществляться в режиме «только чтение» (readonly), без возможности изменения настроек.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на кластер с именем
mych
и выберите вкладку Пользователи. - Нажмите кнопку Создать пользователя.
- Введите имя пользователя базы данных
ro-user
и парольPassw0rd
. - Нажмите на значок
и выберите базу данныхdb1
из выпадающего списка. - Выберите Дополнительные настройки → Settings → Readonly.
- В поле Readonly укажите значение
1
. - Нажмите кнопку Создать.
Запустите следующую команду:
yc managed-clickhouse user create "ro-user" \
--cluster-name="mych" \
--password="Passw0rd" \
--permissions="db1" \
--settings="readonly=1"
После создания пользователя проверьте, что он действительно работает в режиме «только чтение»:
-
Подключитесь к кластеру
mych
, используя созданного пользователяro-user
. -
Попытайтесь изменить какую-нибудь настройку, например, попытайтесь отключить режим «только чтение»:
SET readonly=0
В результате выполнения команды должно отобразиться сообщение о невозможности изменения настройки в режиме «только чтение»:
DB::Exception: Cannot modify 'readonly' setting in readonly mode.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Добавьте к описанию кластера блок
user
.resource "yandex_mdb_clickhouse_cluster" "mych" { name = "mych" database { name = "db1" } user { name = "ro-user" password = "Passw0rd" permission { database_name = "db1" } settings { readonly = 1 } } ... }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Подключитесь к кластеру
mych
, используя учетную записьadmin
. -
Создайте пользователя:
CREATE USER ro-user IDENTIFIED WITH sha256_password BY 'Passw0rd';
-
Выдайте пользователю права на чтение всех объектов базы данных
db1
:GRANT SELECT ON db1.* TO ro-user;
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc