Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

system.session_log

描述

包含所有成功和失败的登录及登出事件的信息。

示例

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>,并在原位置创建一个采用当前 schema 的新表;轮换表的 schema 不会改变。

如果某次登录使用的 interface 不在写入该记录的版本的枚举中——例如,在 interface 枚举不包含 ArrowFlight 的版本中记录的 ArrowFlight 登录——则轮换表会包含其自身枚举未定义的原始值,对其执行 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