Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

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

2349
4 минуты чтения
Средний рейтинг статьи: 5

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

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

Допустим, нам нужно создать нового пользователя под именем timeweb_admin. Это делает команда ClickHouse CREATE USER:

    

Мы создали пользователя и задали пароль. Но задать пароль можно и по-другому. Основные настройки пользователей ClickHouse находятся в файле конфигурации users.xml (этот файл находится в директории /etc/clickhouse-server/ на сервере, где установлен ClickHouse) в разделе users. Открываем этот файл и создаем такие строки:

    

Это значит, что мы можем присвоить как обычный пароль, так и в 16-ричном формате, оставив одно из значений по умолчанию (пустым). Если мы создаем базу данных для тестов или там нет какой-то конфиденциальной информации, можно воспользоваться и обычным паролем, например:

    

В противном случае вводим пароль в 16-ричном формате (0-f), а первое значение оставляем пустым, например, так:

    

Получить хэш для определенной строки можно так:

    

Если же вы собираетесь работать с одним из клиентов MySQL, понадобится создать пароль типа SHA1, который добавляется при помощи следующего тега:

    

Получить хэш можно аналогично:

    

DBaaS

Запустите свою базу данных в облаке и
оптимизируйте процессы DevOps и CI/CD.

Настраиваем права пользователя ClickHouse

Пока наш созданный пользователь не имеет каких-либо особых привилегий. Давайте назначим ему роль админа через команду GRANT.

    

В файле users.xml обратите внимание на тег <access_management></access_management>, который может принимать значения 0 и 1. Если выставить значение 1 здесь:

    

то активируется управление доступом через SQL.

Теперь настраиваем сеть, через которые мы будем получать доступ к ClickHouse. Для этого ищем блок <networks></networks> в конфигурационном файле и прописываем там нужные IP-адреса в любом из подходящих форматов: IPv4 или IPv6. Пример конфигурации:

    

Указать локальный доступ можно, прописав внутри следующее (подставьте нужный IP):

    

Ограничиваем доступ к данным

Иногда полезно ограничить пользователя, дав ему доступ только к определенным частям базы данных. Давайте создадим нового пользователя и сделаем так, чтобы он получил доступ только к определенным строкам в таблице базы данных. Создаем пользователя:

    

Далее нам понадобится создать представление (view), которое фильтрует данные на основе определенных условий, и предоставить доступ к этому представлению пользователю, ограничивая тем самым его видимость данных. Представление создается так (замените значения original_table, some_column и certain_value на нужные):

    

А теперь предоставляем нашему пользователю права на это представление:

    

Теперь нам нужно проверить, что права были выданы корректно. Для этого мы можем использовать запросы к системным таблицам, таким как system.grants и system.privileges, например:

    

Теперь, если вы увидите строку с правами SELECT, значит, права выданы корректно.

Разверните ClickHouse на облачном сервере

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Удаление учетной записи пользователя

Если пользователь больше не актуален, учетную запись можно удалить. Это делается с использованием команды DROP:

    

На этом всё, мы узнали, как работать с учетными записями в ClickHouse: создавать, настраивать права и удалять их.

2349
4 минуты чтения
Средний рейтинг статьи: 5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server