Управление профилем настроек
В Managed ClickHouse управлять профилями настроек можно с помощью SQL-запросов. С полным списком SQL-операторов ClickHouse вы можете ознакомиться в официальной документации ClickHouse.
Получить список профилей настроек в кластере
Заголовок раздела «Получить список профилей настроек в кластере»Запросите список профилей из системной таблицы system.settings_profiles, которая содержит метаданные обо всех профилях настроек. Для этого используйте оператор SELECT и виртуальный движок clusterAllReplicas, который выполняет запрос к указанной таблице на всех узлах всех шардов заданного кластера.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Выполните запрос:
sql SELECT nameFROM system.settings_profilesORDER BY name;
Получить информацию о конкретном профиле настроек
Заголовок раздела «Получить информацию о конкретном профиле настроек»Запросите данные о профиле из системных таблиц system.settings_profiles и system.settings_profile_elements по его имени. Таблица system.settings_profiles содержит метаданные профиля настроек, а таблица system.settings_profile_elements — конкретные настройки профиля. Для просмотра используйте оператор SELECT.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя профиля:
sql SELECT nameFROM system.settings_profilesORDER BY name;Для просмотра метаданных выполните запрос:
sql SELECT *FROM system.settings_profilesWHERE name = '<имя профиля>'LIMIT 1;Здесь условие
LIMITсо значением1возвращает первую найденную запись из таблицыsystem.settings_profiles.Для просмотра настроек профиля выполните запрос:
sql SELECTsetting_name,value,min_value,max_value,readonlyFROM system.settings_profile_elementsWHERE profile_name = '<имя профиля>'ORDER BY index;Здесь:
profile_name— имя профиля настроек;setting_name— название настройки;value— значение настройки;min_valueиmax_value— допустимые границы значений (если заданы);readonly— флаг, указывающий, можно ли изменять настройку (1— нельзя,0— можно);- условие
ORDER BYсортирует результаты по порядковому номеру настройки в профилеindex.
Получить назначение профиля настроек пользователям и ролям
Заголовок раздела «Получить назначение профиля настроек пользователям и ролям»Запросите настройки профиля из таблицы system.settings_profile_elements по его имени. Для просмотра используйте оператор SELECT.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя профиля:
sql SELECT nameFROM system.settings_profilesORDER BY name;Выполните запрос:
sql SELECT DISTINCTuser_name,role_name,profile_nameFROM system.settings_profile_elementsWHERE profile_name = '<имя профиля>'AND (user_name IS NOT NULL OR role_name IS NOT NULL)ORDER BY user_name, role_name;Здесь:
- Оператор
DISTINCTустраняет дубликаты строк, если у пользователя или роли на разных узлах кластера одинаковый профиль. - Условие
AND (user_name IS NOT NULL OR role_name IS NOT NULL)оставляет только те строки, где профиль назначен пользователю или роли. - Условие
ORDER BYупорядочивает результаты по именам пользователя и роли.
Создать профиль настроек
Заголовок раздела «Создать профиль настроек»Для создания профиля настроек используйте оператор CREATE.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Узнайте имя роли:
sql SELECT nameFROM system.rolesORDER BY name;Выполните запрос:
sql CREATE SETTINGS PROFILE [IF NOT EXISTS] <имя профиля>SETTINGS<настройка 1> = <значение 1>,<настройка 2> = <значение 2>,...TO <имя пользователя>, <имя роли>;Условия в запросе:
IF NOT EXISTS— предотвращает ошибку, если профиль с таким именем уже существует.SETTINGS— секция, в которой задаются нужные параметры и значения.
Также вы можете назначить профиль настроек пользователю или роли после создания.
Удалить профиль настроек
Заголовок раздела «Удалить профиль настроек»Для удаления профиля используйте оператор DROP.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя профиля:
sql SELECT nameFROM system.settings_profilesORDER BY name;Выполните запрос:
sql DROP SETTINGS PROFILE [IF EXISTS] <имя профиля>;В запросе условие
IF EXISTSпредотвращает ошибку, если профиля с таким именем не существует.