Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

system.session_log

Описание

Содержит сведения обо всех успешных и неуспешных событиях входа в систему и выхода из неё.

Столбцы

  • hostname (LowCardinality(String)) — Имя хоста сервера, выполняющего запрос.
  • type (Enum8('LoginFailure' = 0, 'LoginSuccess' = 1, 'Logout' = 2)) — Результат входа/выхода. Возможные значения: LoginFailure — ошибка входа. LoginSuccess — успешный вход. Logout — выход из системы.
  • auth_id (UUID) — Идентификатор аутентификации — UUID, который автоматически генерируется при каждом входе пользователя в систему.
  • session_id (String) — Идентификатор сеанса, который клиент передаёт через HTTP-интерфейс.
  • event_date (Date) — Дата входа/выхода.
  • event_time (DateTime) — Время входа/выхода.
  • event_time_microseconds (DateTime64(6)) — Время начала входа/выхода с точностью до микросекунд.
  • user (Nullable(String)) — Имя пользователя.
  • auth_type (Nullable(Enum8('NO_PASSWORD' = 0, 'PLAINTEXT_PASSWORD' = 1, 'SHA256_PASSWORD' = 2, 'DOUBLE_SHA1_PASSWORD' = 3, 'LDAP' = 4, 'KERBEROS' = 5, 'SSL_CERTIFICATE' = 6, 'BCRYPT_PASSWORD' = 7, 'SSH_KEY' = 8, 'HTTP' = 9, 'JWT' = 10, 'SCRAM_SHA256_PASSWORD' = 11, 'NO_AUTHENTICATION' = 12))) — Тип аутентификации.
  • profiles (Array(LowCardinality(String))) — Список профилей, заданных для всех ролей и/или пользователей.
  • roles (Array(LowCardinality(String))) — Список ролей, к которым применяется профиль.
  • settings (Array(Tuple(LowCardinality(String), String))) — Настройки, которые были изменены при входе/выходе клиента.
  • client_address (IPv6) — IP-адрес, использованный для входа/выхода.
  • client_port (UInt16) — Порт клиента, использованный для входа/выхода.
  • interface (Enum8('TCP' = 1, 'HTTP' = 2, 'gRPC' = 3, 'MySQL' = 4, 'PostgreSQL' = 5, 'Local' = 6, 'TCP_Interserver' = 7, 'Prometheus' = 8, 'Background' = 9, 'ArrowFlight' = 10)) — Интерфейс, через который был выполнен вход.
  • client_hostname (String) — Имя хоста клиентской машины, на которой запущен clickhouse-client или другой TCP-клиент.
  • client_name (String) — Имя clickhouse-client или другого TCP-клиента.
  • client_revision (UInt32) — Ревизия clickhouse-client или другого TCP-клиента.
  • client_version_major (UInt32) — Основная версия clickhouse-client или другого TCP-клиента.
  • client_version_minor (UInt32) — Минорная версия clickhouse-client или другого TCP-клиента.
  • client_version_patch (UInt32) — Патч-версия clickhouse-client или другого TCP-клиента.
  • failure_reason (String) — Сообщение об исключении, содержащее причину сбоя входа/выхода.
  • certificate_subjects (Array(LowCardinality(String))) — Список субъектов (Common Name и Subject Alternative Names) TLS-сертификата клиента, представленного при соединении, в форме 'CN:…' / 'SAN:…'. Пусто, если сертификат не был представлен.
  • certificate_serial (LowCardinality(String)) — Серийный номер TLS-сертификата клиента. Пусто, если сертификат не был представлен.
  • certificate_issuer (LowCardinality(String)) — Издатель TLS-сертификата клиента. Пусто, если сертификат не был представлен.
  • certificate_not_before (Nullable(DateTime64(0, 'UTC'))) — Время, начиная с которого TLS-сертификат клиента действителен. NULL, если сертификат не был представлен.
  • certificate_not_after (Nullable(DateTime64(0, 'UTC'))) — Время, после которого TLS-сертификат клиента становится недействительным. NULL, если сертификат не был представлен.

Пример

Querysql
SELECT * FROM system.session_log LIMIT 1 FORMAT Vertical;
Responsetext
Row 1:
──────
hostname:                clickhouse.eu-central1.internal
type:                    LoginSuccess
auth_id:                 45e6bd83-b4aa-4a23-85e6-bd83b4aa1a23
session_id:
event_date:              2021-10-14
event_time:              2021-10-14 20:33:52
event_time_microseconds: 2021-10-14 20:33:52.104247
user:                    default
auth_type:               PLAINTEXT_PASSWORD
profiles:                ['default']
roles:                   []
settings:                [('load_balancing','random'),('max_memory_usage','10000000000')]
client_address:          ::ffff:127.0.0.1
client_port:             38490
interface:               TCP
client_hostname:
client_name:             ClickHouse client
client_revision:         54449
client_version_major:    21
client_version_minor:    10
client_version_patch:    0
failure_reason:
certificate_subjects:    []
certificate_serial:
certificate_issuer:
certificate_not_before:  ᴺᵁᴸᴸ
certificate_not_after:   ᴺᵁᴸᴸ

Чтение таблиц после ротации при обновлении

Когда в перечисление interface добавляется новое значение, таблица, уже хранящаяся на диске, сохраняет прежнее определение Enum8. При первом запуске новой версии system.session_log переименовывается в system.session_log_<N>, а на его месте создаётся новая таблица с текущей схемой; схема таблицы после ротации не меняется.

Если вход в систему был зарегистрирован через интерфейс, отсутствовавший в перечислении версии, записавшей эту запись, — например, вход через ArrowFlight в версии, где ArrowFlight отсутствовал в перечислении interface, — таблица после ротации содержит необработанное значение, не определённое её собственным перечислением, и SELECT из неё генерирует исключение Unexpected value 10 in enum. Чтобы прочитать её, расширьте перечисление этой таблицы; это операция только с метаданными, не перезаписывающая данные:

ALTER TABLE system.session_log_1
    MODIFY COLUMN interface Enum8('TCP' = 1, 'HTTP' = 2, 'gRPC' = 3, 'MySQL' = 4, 'PostgreSQL' = 5, 'Local' = 6, 'TCP_Interserver' = 7, 'Prometheus' = 8, 'Background' = 9, 'ArrowFlight' = 10);
Navigation