Управление пользователем
В Managed ClickHouse управлять пользователями можно с помощью SQL-запросов. С полным списком SQL-операторов ClickHouse вы можете ознакомиться в официальной документации ClickHouse.
Получить список пользователей в кластере
Заголовок раздела «Получить список пользователей в кластере»Запросите список пользователей из системной таблицы system.users, которая содержит метаданные обо всех пользователях. Для этого используйте оператор SELECT и виртуальный движок clusterAllReplicas, который выполняет запрос к указанной таблице на всех узлах всех шардов заданного кластера.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Выполните запрос:
sql SELECT nameFROM system.usersORDER BY name;
Получить информацию о конкретном пользователе
Заголовок раздела «Получить информацию о конкретном пользователе»Запросите данные о пользователе из системной таблицы system.users по его имени. Для просмотра используйте оператор SELECT.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Выполните запрос:
sql SELECT *FROM system.usersWHERE name = '<имя пользователя>'LIMIT 1;Здесь условие
LIMITсо значением1возвращает первую найденную запись из таблицыsystem.users.
Создать пользователя
Заголовок раздела «Создать пользователя»Для создания пользователя используйте оператор CREATE.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Выполните запрос:
sql CREATE USER [IF NOT EXISTS] <имя пользователя>IDENTIFIED BY '<пароль>';Условия в запросе:
IF NOT EXISTS— предотвращает ошибку, если пользователь с таким именем уже существует.IDENTIFIED— задает, как пользователь будет проходить аутентификацию.
Назначить роль пользователю
Заголовок раздела «Назначить роль пользователю»Для операции используйте оператор GRANT.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Узнайте имя роли:
sql SELECT nameFROM system.rolesORDER BY name;Выполните запрос:
sql GRANT <имя роли> TO <имя пользователя>;Пользователь получит все привилегии, выданные роли.
Выдать привилегию пользователю
Заголовок раздела «Выдать привилегию пользователю»Для операции используйте оператор GRANT.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Выполните запрос:
sql GRANT <привилегия> TO <имя пользователя>;
Получить роли пользователя
Заголовок раздела «Получить роли пользователя»Запросите список назначенных пользователю ролей из системной таблицы system.users по имени пользователя. Для просмотра используйте оператор SELECT.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Выполните запрос:
sql SELECT granted_rolesFROM system.usersWHERE name = '<имя пользователя>';
Отозвать роль или привилегию у пользователя
Заголовок раздела «Отозвать роль или привилегию у пользователя»Для операции используйте оператор REVOKE.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Узнайте имя роли:
sql SELECT nameFROM system.rolesORDER BY name;Выполните запрос:
sql REVOKE <имя роли или привилегия> FROM <имя пользователя>;
Назначить профиль настроек пользователю
Заголовок раздела «Назначить профиль настроек пользователю»Для операции используйте оператор ALTER USER.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Узнайте имя профиля:
sql SELECT nameFROM system.settings_profilesORDER BY name;Выполните запрос:
sql ALTER USER <имя пользователя>SETTINGS PROFILE = '<имя профиля>';Пользователь будет использовать указанный профиль во всех новых сессиях.
Также вы можете назначить пользователю профиль настроек при создании профиля.
Получить профиль настроек пользователя
Заголовок раздела «Получить профиль настроек пользователя»Запросите информацию о профиле, назначенном пользователю, из системной таблицы system.users. Для просмотра используйте оператор SELECT.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Выполните запрос:
sql SELECT name, settings_profileFROM system.usersWHERE name = '<имя пользователя>';
В поле settings_profile будет указано имя профиля, назначенного пользователю. Если профиль не назначен, поле будет пустым.
Отозвать профиль настроек у пользователя
Заголовок раздела «Отозвать профиль настроек у пользователя»- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Выполните запрос:
sql ALTER USER <имя пользователя>SETTINGS PROFILE = NONE;
Удалить пользователя
Заголовок раздела «Удалить пользователя»Для удаления пользователя используйте оператор DROP.
- В standalone-кластере
- В multi-node-кластере
Подключитесь к кластеру.
Узнайте имя пользователя:
sql SELECT nameFROM system.usersORDER BY name;Выполните запрос:
sql DROP USER [IF EXISTS] <имя пользователя>;В запросе условие
IF EXISTSпредотвращает ошибку, если пользователя с таким именем не существует.