-- 统一账号审计日志。部署到 playpai_other 数据库;该表只追加写入,不提供业务侧更新/删除接口。
|
CREATE TABLE IF NOT EXISTS `sys_account_audit_log` (
|
`id` bigint(20) NOT NULL COMMENT '主键ID(雪花算法生成)',
|
`trace_id` varchar(64) DEFAULT NULL COMMENT '链路标识',
|
`user_id` bigint DEFAULT NULL COMMENT '账号ID(能够识别时记录)',
|
`user_account` varchar(128) DEFAULT NULL COMMENT '账号标识(手机号等脱敏)',
|
`source_service` varchar(64) NOT NULL COMMENT '发起服务',
|
`source_type` varchar(16) NOT NULL COMMENT 'HTTP、LOGIN、FEIGN',
|
`operation_type` varchar(32) NOT NULL COMMENT 'LOGIN、CREATE、UPDATE、DELETE、VIEW_SENSITIVE、STATUS_CHANGE、FEIGN_CALL等',
|
`risk_level` varchar(16) NOT NULL DEFAULT 'NORMAL' COMMENT 'NORMAL、SENSITIVE、CRITICAL',
|
`operation_name` varchar(255) DEFAULT NULL COMMENT '操作说明',
|
`request_method` varchar(16) DEFAULT NULL COMMENT 'HTTP方法',
|
`request_uri` varchar(512) DEFAULT NULL COMMENT '请求路径或Feign目标',
|
`request_params` text COMMENT '脱敏后的请求参数摘要',
|
`before_data` text COMMENT '修改前状态快照(脱敏)',
|
`after_data` text COMMENT '修改后状态快照(脱敏)',
|
`result` varchar(16) NOT NULL DEFAULT 'SUCCESS' COMMENT 'REQUESTED、SUCCESS、FAIL',
|
`error_message` varchar(1000) DEFAULT NULL COMMENT '失败原因(脱敏)',
|
`client_ip` varchar(64) DEFAULT NULL COMMENT '客户端IP',
|
`duration_ms` bigint DEFAULT NULL COMMENT '请求耗时毫秒',
|
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发生时间',
|
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
`is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '逻辑删除 0-正常 1-删除',
|
PRIMARY KEY (`id`),
|
KEY `idx_audit_user_time` (`user_id`, `created_at`),
|
KEY `idx_audit_account_time` (`user_account`, `created_at`),
|
KEY `idx_audit_operation_time` (`operation_type`, `created_at`),
|
KEY `idx_audit_trace_id` (`trace_id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号使用与关键操作审计日志';
|
|
-- 回滚(确认不再需要审计记录后执行):
|
-- DROP TABLE IF EXISTS `sys_account_audit_log`;
|