Descripción
Contiene información sobre todos los eventos de inicio y cierre de sesión, tanto exitosos como fallidos.
Columnas
hostname(LowCardinality(String)) — Hostname del servidor que ejecuta la consulta.type(Enum8('LoginFailure' = 0, 'LoginSuccess' = 1, 'Logout' = 2)) — Resultado del inicio/cierre de sesión. Posibles valores: LoginFailure — Error de inicio de sesión. LoginSuccess — Inicio de sesión correcto. Logout — Cierre de sesión del sistema.auth_id(UUID) — ID de autenticación, un UUID que se genera automáticamente cada vez que un usuario inicia sesión.session_id(String) — ID de sesión que el cliente envía a través de la interfaz HTTP.event_date(Date) — Fecha de inicio/cierre de sesión.event_time(DateTime) — Hora de inicio/cierre de sesión.event_time_microseconds(DateTime64(6)) — Hora de inicio del proceso de inicio/cierre de sesión con precisión de microsegundos.user(Nullable(String)) — Nombre de usuario.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))) — Tipo de autenticación.profiles(Array(LowCardinality(String))) — Lista de perfiles establecidos para todos los roles y/o usuarios.roles(Array(LowCardinality(String))) — Lista de roles a los que se aplica el perfil.settings(Array(Tuple(LowCardinality(String), String))) — Configuración que se modificó cuando el cliente inició/cerró sesión.client_address(IPv6) — Dirección IP utilizada para iniciar/cerrar sesión.client_port(UInt16) — Puerto del cliente utilizado para iniciar/cerrar sesión.interface(Enum8('TCP' = 1, 'HTTP' = 2, 'gRPC' = 3, 'MySQL' = 4, 'PostgreSQL' = 5, 'Local' = 6, 'TCP_Interserver' = 7, 'Prometheus' = 8, 'Background' = 9, 'ArrowFlight' = 10)) — Interfaz desde la que se inició la sesión.client_hostname(String) — Hostname de la máquina cliente en la que se ejecutaclickhouse-clientu otro cliente TCP.client_name(String) — Nombre declickhouse-clientu otro cliente TCP.client_revision(UInt32) — Revisión declickhouse-clientu otro cliente TCP.client_version_major(UInt32) — Versión principal declickhouse-clientu otro cliente TCP.client_version_minor(UInt32) — Versión secundaria declickhouse-clientu otro cliente TCP.client_version_patch(UInt32) — Componente de parche de la versión declickhouse-clientu otro cliente TCP.failure_reason(String) — Mensaje de excepción que contiene el motivo del fallo de inicio/cierre de sesión.certificate_subjects(Array(LowCardinality(String))) — Lista de sujetos (Common Name y Subject Alternative Names) del certificado TLS del cliente presentado en la conexión, con el formato 'CN:…' / 'SAN:…'. Vacío si no se presentó ningún certificado.certificate_serial(LowCardinality(String)) — Número de serie del certificado TLS del cliente. Vacío si no se presentó ningún certificado.certificate_issuer(LowCardinality(String)) — Emisor del certificado TLS del cliente. Vacío si no se presentó ningún certificado.certificate_not_before(Nullable(DateTime64(0, 'UTC'))) — Hora a partir de la cual el certificado TLS del cliente es válido. NULL si no se presentó ningún certificado.certificate_not_after(Nullable(DateTime64(0, 'UTC'))) — Hora a partir de la cual el certificado TLS del cliente caduca. NULL si no se presentó ningún certificado.
Ejemplo
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: ᴺᵁᴸᴸLectura de tablas rotadas tras una actualización
Cuando se añade un nuevo valor a la enumeración interface, la tabla ya almacenada en disco conserva la definición anterior de Enum8. Al iniciar por primera vez la nueva versión, system.session_log se renombra como system.session_log_<N> y se crea en su lugar una tabla nueva con el esquema actual; el esquema de la tabla rotada no cambia.
Si se registró un inicio de sesión a través de una interfaz que no figuraba en la enumeración de la versión que lo registró —por ejemplo, un inicio de sesión de ArrowFlight en una versión en la que ArrowFlight no estaba presente en la enumeración interface—, la tabla rotada contiene un valor sin procesar que su propia enumeración no define, y un SELECT sobre ella genera Unexpected value 10 in enum. Amplíe la enumeración de esa tabla para poder leerla; esta operación solo afecta a los metadatos y no reescribe ningún dato:
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);