Перейти к основному содержимому
Перейти к основному содержимому

Настройки пользователей и ролей

Секция users файла конфигурации users.xml содержит настройки пользователей.

примечание

ClickHouse также поддерживает рабочий процесс на основе SQL для управления пользователями. Мы рекомендуем использовать его.

Структура секции users:

user_name/password

Пароль можно указать в нешифрованном виде или в SHA256 (в шестнадцатеричном формате).

  • Чтобы задать пароль в нешифрованном виде (не рекомендуется), поместите его в элемент password.

    Например, <password>qwerty</password>. Пароль можно оставить пустым.

  • Чтобы задать пароль с использованием его SHA256 хеша, поместите его в элемент password_sha256_hex.

    Например, <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>.

    Пример того, как сгенерировать пароль из командной строки:

    PASSWORD=(base64</dev/urandomheadc8);echo"(base64 < /dev/urandom | head -c8); echo "PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

    Первая строка результата — это пароль. Вторая строка — соответствующий SHA256 хеш.

  • Для совместимости с MySQL клиентами, пароль можно указать в двойном SHA1 хеше. Поместите его в элемент password_double_sha1_hex.

    Например, <password_double_sha1_hex>08b4a0f1de6ad37da17359e592c8d74788a83eb0</password_double_sha1_hex>.

    Пример того, как сгенерировать пароль из командной строки:

    PASSWORD=(base64</dev/urandomheadc8);echo"(base64 < /dev/urandom | head -c8); echo "PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'

    Первая строка результата — это пароль. Вторая строка — соответствующий двойной SHA1 хеш.

username/ssh-key

Эта настройка позволяет аутентифицироваться с помощью SSH ключей.

Учитывая SSH ключ (сгенерированный с помощью ssh-keygen) в следующем формате:

Элемент ssh_key ожидается в следующем формате:

Замените ssh-ed25519 на ssh-rsa или ecdsa-sha2-nistp256 для других поддерживаемых алгоритмов.

access_management

Эта настройка включает или выключает использование SQL-управляемого контроля доступа и управления учетными записями для пользователя.

Возможные значения:

  • 0 — Отключено.
  • 1 — Включено.

Значение по умолчанию: 0.

grants

Эта настройка позволяет предоставлять любые права выбранному пользователю. Каждый элемент списка должен быть запросом GRANT без каких-либо указанных получателей.

Пример:

Эта настройка не может быть указана одновременно с dictionaries, access_management, named_collection_control, show_named_collections_secrets и allow_databases настройками.

user_name/networks

Список сетей, из которых пользователь может подключаться к серверу ClickHouse.

Каждый элемент списка может иметь одну из следующих форм:

  • <ip> — IP-адрес или сетевой маска.

    Примеры: 213.180.204.3, 10.0.0.1/8, 10.0.0.1/255.255.255.0, 2a02:6b8::3, 2a02:6b8::3/64, 2a02:6b8::3/ffff:ffff:ffff:ffff::.

  • <host> — Имя хоста.

    Пример: example01.host.ru.

    Для проверки доступа выполняется DNS-запрос, и все возвращенные IP-адреса сравниваются с адресом пира.

  • <host_regexp> — Регулярное выражение для имен хостов.

    Например, ^example\d\d-\d\d-\d\.host\.ru$

    Для проверки доступа выполняется DNS PTR запрос для адреса пира, после чего применяется указанное регулярное выражение. Затем выполняется еще один DNS-запрос для результатов PTR-запроса, и все полученные адреса сравниваются с адресом пира. Мы настоятельно рекомендуем, чтобы регулярное выражение заканчивалось на $.

Все результаты DNS-запросов кэшируются до перезапуска сервера.

Примеры

Чтобы открыть доступ для пользователя из любой сети, укажите:

примечание

Открывать доступ из любой сети небезопасно, если у вас не настроен брандмауэр или сервер не подключен напрямую к Интернету.

Чтобы открыть доступ только из localhost, укажите:

user_name/profile

Вы можете назначить профиль настроек для пользователя. Профили настроек настраиваются в отдельном разделе файла users.xml. Дополнительную информацию см. в Профили настроек.

user_name/quota

Квоты позволяют отслеживать или ограничивать использование ресурсов в течение определенного времени. Квоты настраиваются в секции quotas файла конфигурации users.xml.

Вы можете назначить набор квот для пользователя. Для подробного описания настройки квот см. Квоты.

user_name/databases

В этом разделе вы можете ограничить строки, которые возвращает ClickHouse для запросов SELECT, выполненных текущим пользователем, тем самым реализуя базовую безопасность на уровне строк.

Пример

Следующая конфигурация заставляет пользователя user1 видеть только строки таблицы table1 в результате запросов SELECT, где значение поля id равно 1000.

Фильтр может быть любым выражением, которое дает значение типа UInt8. Обычно он содержит сравнения и логические операторы. Строки из database_name.table1, где фильтр дает 0, не возвращаются для этого пользователя. Фильтрация несовместима с операциями PREWHERE и отключает оптимизацию WHERE→PREWHERE.

Роли

Вы можете создавать любые предопределенные роли, используя секцию roles файла конфигурации user.xml.

Структура секции roles:

Эти роли также могут быть предоставлены пользователям из секции users: