Descrição
Contém informações sobre todos os eventos de login e logout, bem-sucedidos e malsucedidos.
Colunas
hostname(LowCardinality(String)) — Hostname do servidor que executa a consulta.type(Enum8('LoginFailure' = 0, 'LoginSuccess' = 1, 'Logout' = 2)) — Resultado de login/logout. Valores possíveis: LoginFailure — Erro de login. LoginSuccess — Login bem-sucedido. Logout — Saída do sistema.auth_id(UUID) — ID de autenticação, que é um UUID gerado automaticamente toda vez que o usuário faz login.session_id(String) — ID da sessão enviado pelo cliente via interface HTTP.event_date(Date) — Data de login/logout.event_time(DateTime) — Horário de login/logout.event_time_microseconds(DateTime64(6)) — Horário de início do login/logout com precisão de microssegundos.user(Nullable(String)) — Nome do usuário.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))) — O tipo de autenticação.profiles(Array(LowCardinality(String))) — A lista de perfis configurados para todos os roles e/ou usuários.roles(Array(LowCardinality(String))) — A lista de roles aos quais o perfil é aplicado.settings(Array(Tuple(LowCardinality(String), String))) — Configurações alteradas quando o cliente fez login/logout.client_address(IPv6) — O endereço IP usado para fazer login/logout.client_port(UInt16) — A porta do cliente usada para fazer login/logout.interface(Enum8('TCP' = 1, 'HTTP' = 2, 'gRPC' = 3, 'MySQL' = 4, 'PostgreSQL' = 5, 'Local' = 6, 'TCP_Interserver' = 7, 'Prometheus' = 8, 'Background' = 9, 'ArrowFlight' = 10)) — A interface a partir da qual o login foi iniciado.client_hostname(String) — O hostname da máquina cliente em que o clickhouse-client ou outro cliente TCP é executado.client_name(String) — O nome do clickhouse-client ou de outro cliente TCP.client_revision(UInt32) — Revisão do clickhouse-client ou de outro cliente TCP.client_version_major(UInt32) — A versão principal do clickhouse-client ou de outro cliente TCP.client_version_minor(UInt32) — A versão secundária do clickhouse-client ou de outro cliente TCP.client_version_patch(UInt32) — Componente de patch da versão do clickhouse-client ou de outro cliente TCP.failure_reason(String) — A mensagem de exceção contendo o motivo da falha de login/logout.certificate_subjects(Array(LowCardinality(String))) — A lista de subjects (Common Name e Subject Alternative Names) do certificado TLS do cliente apresentado na conexão, no formato 'CN:…' / 'SAN:…'. Vazia se nenhum certificado foi apresentado.certificate_serial(LowCardinality(String)) — Número de série do certificado TLS do cliente. Vazio se nenhum certificado foi apresentado.certificate_issuer(LowCardinality(String)) — Emissor do certificado TLS do cliente. Vazio se nenhum certificado foi apresentado.certificate_not_before(Nullable(DateTime64(0, 'UTC'))) — Horário a partir do qual o certificado TLS do cliente é válido. NULL se nenhum certificado foi apresentado.certificate_not_after(Nullable(DateTime64(0, 'UTC'))) — Horário após o qual o certificado TLS do cliente expira. NULL se nenhum certificado foi apresentado.
Exemplo
SELECT * FROM system.session_log LIMIT 1 FORMAT Vertical;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: ᴺᵁᴸᴸLeitura de tabelas rotacionadas após um upgrade
Quando um novo valor é adicionado à enumeração interface, a tabela já armazenada em disco mantém a definição anterior de Enum8. Na primeira inicialização da nova versão, system.session_log é renomeada para system.session_log_<N> e uma nova tabela com o esquema atual é criada em seu lugar; o esquema da tabela rotacionada não é alterado.
Se um login foi registrado por meio de uma interface ausente da enumeração da versão que o gravou — por exemplo, um login ArrowFlight em uma versão em que ArrowFlight não constava na enumeração interface — a tabela rotacionada contém um valor bruto que sua própria enumeração não define, e um SELECT nela lança Unexpected value 10 in enum. Estenda a enumeração dessa tabela para lê-la; esta é uma operação que altera apenas os metadados e não reescreve dados:
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);