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

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

Секция 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: