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

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

Секция 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 запросов кэшируются до перезагрузки сервера.

Примеры

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

примечание

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

Чтобы открыть доступ только с локального хоста, укажите:

user_name/profile

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

user_name/quota

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

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

user_name/databases

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

Пример

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

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

Роли

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

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

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