Управление профилем настроек
В Managed ClickHouse управлять профилями настроек можно с помощью SQL-запросов. С полным списком SQL-операторов ClickHouse вы можете ознакомиться в официальной документации ClickHouse.
Посмотреть список профилей настроек в кластере
Заголовок раздела «Посмотреть список профилей настроек в кластере»Запросите список профилей из системной таблицы system.settings_profiles, которая содержит метаданные обо всех профилях настроек. Для этого используйте оператор SELECT и виртуальный движок clusterAllReplicas, который выполняет запрос к указанной таблице на всех узлах всех шардов заданного кластера.
Подключитесь к кластеру.
Выполните запрос:
sql SELECT hostName(), nameFROM clusterAllReplicas('{cluster}', system.settings_profiles);Имя кластера автоматически определяется макросом
{cluster}, заданным в конфигурации.Будет выведен список профилей на каждом узле. Если списки профилей на каждом узле одинаковые, значит профили синхронизированы.
Посмотреть информацию о конкретном профиле настроек
Заголовок раздела «Посмотреть информацию о конкретном профиле настроек»Запросите данные о профиле из системных таблиц system.settings_profiles и system.settings_profile_elements по его имени. Таблица system.settings_profiles содержит метаданные профиля настроек, а таблица system.settings_profile_elements — конкретные настройки профиля. Для просмотра используйте оператор SELECT.
Подключитесь к кластеру.
Узнайте имя профиля:
sql SELECT hostName(), nameFROM clusterAllReplicas('{cluster}', system.settings_profiles);Имя кластера автоматически определяется макросом
{cluster}, заданным в конфигурации.Для просмотра метаданных выполните запрос:
sql SELECT *FROM clusterAllReplicas('{cluster}', system.settings_profiles)WHERE name = '<имя профиля>'LIMIT 1;Здесь условие
LIMITсо значением1возвращает первую найденную запись из таблицыsystem.settings_profiles.Для просмотра настроек профиля выполните запрос:
sql SELECThostName(),setting_name,value,min_value,max_value,readonlyFROM clusterAllReplicas('{cluster}', system.settings_profile_elements)WHERE profile_name = '<имя профиля>'ORDER BY hostName(), index;Здесь:
profile_name— имя профиля настроек;setting_name— название настройки;value— значение настройки;min_valueиmax_value— допустимые границы значений (если заданы);readonly— флаг, указывающий можно ли изменять настройку (1— нельзя,0— можно);- условие
ORDER BYсортирует результаты по имени узла кластераhostName()и порядковому номеру настройки в профилеindex.
Посмотреть назначение профиля настроек пользователям и ролям
Заголовок раздела «Посмотреть назначение профиля настроек пользователям и ролям»Запросите настройки профиля из таблицы system.settings_profile_elements по его имени. Для просмотра используйте оператор SELECT.
Подключитесь к кластеру.
Узнайте имя профиля:
sql SELECT hostName(), nameFROM clusterAllReplicas('{cluster}', system.settings_profiles);Имя кластера автоматически определяется макросом
{cluster}, заданным в конфигурации.Выполните запрос:
sql SELECT DISTINCThostName(),user_name,role_name,profile_nameFROM clusterAllReplicas('{cluster}', system.settings_profile_elements)WHERE profile_name = '<имя профиля>'AND (user_name IS NOT NULL OR role_name IS NOT NULL)ORDER BY hostName(), user_name, role_name;Здесь:
- оператор
DISTINCTустраняет дубликаты строк, если у пользователя или роли на разных узлах кластера одинаковый профиль; - условие
AND (user_name IS NOT NULL OR role_name IS NOT NULL)оставляет только те строки, где профиль назначен пользователю или роли; - условие
ORDER BYупорядочивает результаты по именам кластера, пользователя и роли.
Создать профиль настроек
Заголовок раздела «Создать профиль настроек»Для создания профиля настроек используйте оператор CREATE.
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT hostName(), nameFROM clusterAllReplicas('{cluster}', system.users);Узнайте имя роли:
sql SELECT hostName(), nameFROM clusterAllReplicas('{cluster}', system.roles);Выполните запрос:
sql CREATE SETTINGS PROFILE [IF NOT EXISTS] <имя профиля>ON CLUSTER '<имя кластера>'SETTINGS<настройка 1> = <значение 1>,<настройка 2> = <значение 2>,...TO <имя пользователя>, <имя роли>;Условия в запросе:
IF NOT EXISTS— предотвращает ошибку, если профиль с таким именем уже существует.ON CLUSTER— создает профиль на всех узлах заданного кластера.SETTINGS— секция, в которой задаются нужные параметры и значения.
Также вы можете назначить профиль настроек пользователю или роли после создания.
Удалить профиль настроек
Заголовок раздела «Удалить профиль настроек»Для удаления профиля используйте оператор DROP.
Подключитесь к кластеру.
Узнайте имя профиля:
sql SELECT hostName(), nameFROM clusterAllReplicas('{cluster}', system.settings_profiles);Имя кластера автоматически определяется макросом
{cluster}, заданным в конфигурации.Выполните запрос:
sql DROP SETTINGS PROFILE [IF EXISTS] <имя профиля> ON CLUSTER '<имя кластера>' SYNC;Условия в запросе:
IF EXISTS— предотвращает ошибку, если профиля с таким именем не существует.ON CLUSTER— удаляет профиль на всех узлах заданного кластера.SYNC— гарантирует, что команда завершится только после применения изменений на всех узлах.