有人导出了十二万条用户数据,导出接口只记了时间,没记谁导的、导去干什么,事后完全查不到。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
INSERT INTO export_log(user_id, purpose, rows, file_hash) VALUES (?, ?, ?, ?);
导出接口为了省事复用了列表查询,日志里只有 URL 和状态码。没有审批流程,也没有用途字段。这一点先确认清楚,后面就不用反复试。
「导出用途审计」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
具体做法是,导出必须填用途并落库留痕;记录操作人 IP 文件哈希 行数;大文件走审批 抄送数据负责人;定期审计异常导出。
改完照着核一遍,每次导出都能查到操作人 用途和行数。
