SQL 审计:Archery 审核、审批与数据恢复边界
建立库实例接入、查询脱敏、变更工单和执行证据流程,避免将回滚语句当作完整备份。
SQL 审计:Archery 变更闭环
职责边界
Archery 在图中对应 SQL 审计,本方案将其拆为查询授权、SQL 规则审核、人工审批、受控执行和操作留痕。各数据库引擎的查询、审核、执行与备份能力并不相同,MySQL 相关审核能力还依赖对应组件,必须对照所选发行版本逐项确认。Archery 官方功能清单
页面显示审核通过不意味着语句不会锁表或影响业务;生成回滚 SQL 也不意味着可恢复所有数据。这里仅编写运维方案,没有接入真实数据库,所有查询、授权、执行和演练都待目标环境批准。
前提依赖与数据分级
由数据库负责人确认实例身份、环境、引擎、连接入口、复制拓扑和业务窗口,查询账号与执行账号分离。登记审核引擎、任务处理组件和平台自身数据库;禁止将测试实例命名为容易与生产混淆的别名。
按库表和敏感字段定义查询范围、结果行数、超时、导出权限和保留期限。变更申请须提供目标库、语句摘要、预计影响行数、锁风险、容量增量、验证语句和数据恢复办法。账号凭据只保存于批准的密钥位置,不写在工单正文或公开运行手册中。
接入与审批流程
先在隔离测试库验证只读查询、越权拒绝和脱敏规则,再使用可恢复的样例数据核对审核结果、审批链与执行记录。将提交人、审批人和执行人职责分离,数据库上线许可不能直接从项目成员身份推导。
批准前对执行计划、大表操作、事务范围和复制影响做专项评审。执行前重新确认实例、数据库和当前业务窗口,记录备份或可恢复点;对需要分批执行的修改先定义批次边界和暂停条件。不得把一段任意 SQL 交给持续交付任务自动执行而跳过此流程。
日常巡检
检查待审工单超时、定时执行积压、审核组件连接失败、查询拒绝及导出异常。抽样比对平台记录与数据库实际状态,确认工单没有出现“已完成但部分语句未生效”。关注连接数、长事务、锁等待、复制延迟和临时空间变化,区分平台故障与业务库压力。
人员变动后复核资源组、查询权限、实例账号和导出权限。审核规则调整必须留版本与理由,并使用原有拒绝样例回归测试;不能为让一条变更通过而全局放松规则。
故障分支与停止点
审核请求超时先查审核组件与目标库连接,未知结果不能当成通过。审批后执行没有开始,查任务状态和执行窗口,确认没有另一执行器正在处理。执行途中超时或连接断开时,先查询数据库会话、事务及目标行状态,再决定继续、回滚或补偿,严禁盲目重复提交。
锁等待、复制延迟或影响行数超出事先批准范围时停止后续批次并通知数据库负责人。若状态无法确认,保留连接与日志证据,禁止直接重启数据库或批量终止会话来试错;任何终止动作都需评估事务回滚和业务影响。
安全与备份恢复
分别备份 Archery 平台数据、必要配置和密钥材料,另由数据库团队负责业务库一致性备份及日志恢复链。平台工单恢复只会恢复记录,不能撤销已经提交的数据库写入。评估回滚 SQL 是否覆盖本次 DML、DDL、触发器副作用和外部系统联动;不能覆盖的部分必须明确另行补偿。
演练使用隔离副本,先核验备份可读、恢复点和 schema,再按业务主键及约束检查数据。将恢复点之后的新写入列为潜在损失或补录范围,未经数据所有者确认不覆盖生产库。恢复完成仍需核对复制状态与应用兼容性。
验收要求
保存只读用户拒绝写入、敏感字段脱敏、审批人分离、非法 SQL 拒绝、批准变更执行和失败状态核对的证据。至少完成一次样例数据恢复,并记录实际耗时与未覆盖对象。任何缺少数据恢复方案、审批对象不明或审核能力未经验证的库都不进入生产接入清单。
官方参考
以 Archery 官方仓库 的数据库能力矩阵与功能依赖为实施依据,需在所选标签上复核。平台发布流程可参照Jenkins 手册,但 SQL 变更的批准与恢复责任仍独立保留。