59 lines
1.9 KiB
SQL
59 lines
1.9 KiB
SQL
-- 审计日志表
|
||
CREATE TABLE IF NOT EXISTS sys_audit_log (
|
||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
user_id UUID,
|
||
username VARCHAR(64) NOT NULL,
|
||
operation VARCHAR(128) NOT NULL,
|
||
module VARCHAR(64) NOT NULL,
|
||
action VARCHAR(64) NOT NULL,
|
||
target_type VARCHAR(64),
|
||
target_id VARCHAR(64),
|
||
content TEXT,
|
||
params TEXT,
|
||
result TEXT,
|
||
ip_address VARCHAR(64),
|
||
user_agent VARCHAR(512),
|
||
request_url VARCHAR(512),
|
||
request_method VARCHAR(16),
|
||
execution_time_ms INTEGER,
|
||
status VARCHAR(16) DEFAULT 'SUCCESS',
|
||
error_msg TEXT,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
tenant_id UUID
|
||
);
|
||
|
||
-- 创建索引
|
||
CREATE INDEX idx_audit_log_created_at ON sys_audit_log(created_at);
|
||
CREATE INDEX idx_audit_log_user_id ON sys_audit_log(user_id);
|
||
CREATE INDEX idx_audit_log_module ON sys_audit_log(module);
|
||
CREATE INDEX idx_audit_log_action ON sys_audit_log(action);
|
||
CREATE INDEX idx_audit_log_target ON sys_audit_log(target_type, target_id);
|
||
|
||
-- 归档表(结构相同,用于存储超过90天的数据)
|
||
CREATE TABLE IF NOT EXISTS sys_audit_log_archive (
|
||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
user_id UUID,
|
||
username VARCHAR(64) NOT NULL,
|
||
operation VARCHAR(128) NOT NULL,
|
||
module VARCHAR(64) NOT NULL,
|
||
action VARCHAR(64) NOT NULL,
|
||
target_type VARCHAR(64),
|
||
target_id VARCHAR(64),
|
||
content TEXT,
|
||
params TEXT,
|
||
result TEXT,
|
||
ip_address VARCHAR(64),
|
||
user_agent VARCHAR(512),
|
||
request_url VARCHAR(512),
|
||
request_method VARCHAR(16),
|
||
execution_time_ms INTEGER,
|
||
status VARCHAR(16) DEFAULT 'SUCCESS',
|
||
error_msg TEXT,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
tenant_id UUID
|
||
);
|
||
|
||
-- 为归档表创建索引
|
||
CREATE INDEX idx_audit_archive_created_at ON sys_audit_log_archive(created_at);
|
||
CREATE INDEX idx_audit_archive_user_id ON sys_audit_log_archive(user_id);
|