审计表需包含操作人、时间、对象、动作等字段,用JSON存储新旧值,通过应用层或触发器记录,注意索引与数据安全。
在MySQL中设计后台操作审计表,核心目标是记录关键操作行为,便于追踪问题、排查责任和保障数据安全。一个合理的审计表结构应包含操作主体、时间、对象、动作类型和详情等信息。
建议审计表包含以下基本字段:
TAMP,默认CURRENT_TIMESTAMP。以下是创建审计表的SQL语句示例:
CREATE TABLE operation_audit ( id BIGINT AUTO_INCREMENT PRIMARY KEY, operator_id INT NOT NULL, operator_name VARCHAR(50) NOT NULL, operation_type VARCHAR(20) NOT NULL COMMENT 'INSERT, UPDATE, DELETE, LOGIN等', target_table VARCHAR(64) NOT NULL, target_id BIGINT, old_value JSON, new_value JSON, operation_time DATETIME DEFAULT CURRENT_TIMESTAMP, ip_address VARCHAR(45), user_agent TEXT, remark VARCHAR(255) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
有三种常见实现方式:
设计时需考虑以下几点:
(operation_time)、
(operator_id)、
(target_table, target_id)。