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

СlickHouse предоставляет гибкую систему управления пользователями и их правами, основанную на концепции Role Based Access Control (RBAC).

Рекомендуемый вариант использования предполагает, что в разделе Default user and policy settings конфигурации ADQMDB включен Access Management.

SQL-ориентированное управление доступом осуществляется командами ClickHouse:

  • CREATE USER
  • ALTER USER
  • DROP USER
  • SHOW CREATE USER

Идентификация пользователей возможна с помощью ввода пароля, через Kerberos и через LDAP (Active Directory).

Для Role Based Access Control (RBAC) используются команды ClickHouse:

  • CREATE ROLE
  • ALTER ROLE
  • DROP ROLE
  • SET ROLE
  • SET DEFAULT ROLE
  • SHOW CREATE ROLE

Использование LDAP

  1. Включить Enable LDAP.
  2. Сконфигурировать LDAP:
    • LDAP hostname и LDAP port – для доступа к серверу.

Использование LDAP для аутентификации пользователей

  1. Заполнить параметры DN prefix и DN suffix в ADCM таким образом, чтобы идентификатор пользователя оказался между ними.

  2. Если это необходимо, включить Enable TLS и задать параметры:

    • TLS min version
    • TLS require cert
    • TLS cert file
    • TLS key file
    • CA cert file
    • path to CA certificates
    • Cipher suite
  3. Создать в ClickHouse пользователей с помощью команд вида:

    CREATE USER some_ldapuser IDENTIFIED WITH LDAP_SERVER BY '\''ldap_server'\''
    

    где

    • ldap_server - предопределенное имя LDAP-сервера, используемое ADQM;
    • some_ldapuser - имя пользователя ClickHouse (должно находиться между DN prefix и DN suffix).

После этого пользователь some_ldapuser сможет войти в ClickHouse со своим паролем из LDAP.

Использование LDAP для хранения имен и прав пользователей

  1. Включить Enable RBAC.

  2. Установить параметры:

    • Base DN – корень поддерева для поиска ролей;
    • Search filter – условие для поиска bind_dn;
    • Attribute – имя атрибута;
    • Role prefix – строка, которая будет отрезана от значения найденного атрибута слева.
  3. Создать в ClickHouse роли:

    CREATE ROLE some_role
    

После этого в ClickHouse будет возможно использовать имена LDAP-пользователей, удовлетворяющие двум условиям:

  • В Attribute имен найдены строки, начинающиеся с Role prefix.
  • Правые части имен (за вычетом Role prefix) указаны в CREATE ROLE.