数据迁移校验与脱敏须贯穿迁移前识别、迁移中处理、迁移后验证三环节:迁移前扫描识别敏感字段并校准规则;迁移中边读边脱敏、边写边校验;迁移后开展一致性比对与残留扫描。

数据迁移校验与数据脱敏工具需在“迁移前识别—迁移中处理—迁移后验证”三个环节紧密配合,确保敏感数据不落地、不暴露、不错脱、不漏脱。
迁移前:用脱敏工具预扫描+规则对齐
在启动迁移任务前,不能直接导出原始数据。应先调用脱敏工具的扫描能力(如影刀配置表中的rules结构或ShardingSphere的敏感字段识别模块),自动识别源库/文件中的手机号、身份证、邮箱等字段,并比对脱敏规则表是否覆盖全部敏感类型。若发现新字段(如新增的“紧急联系人电话”),必须补全正则和脱敏方法,否则校验阶段会报“未脱敏字段告警”。
建议操作:
- 把脱敏规则表(JSON或Excel)纳入迁移配置中心,与迁移脚本共版本管理
- 对源数据抽样1000条,用脱敏工具离线跑一遍,输出脱敏覆盖率报告(例如:“身份证脱敏率100%,地址字段匹配率仅62%→需优化
mask_address参数”) - 禁止使用硬编码脱敏逻辑——所有规则必须可配置、可回滚
迁移中:嵌入式脱敏 + 流式校验双通道
迁移过程不是“先全量导出→再批量脱敏→最后入库”,而是边读边脱敏、边写边校验。例如:
- 用影刀读取Excel时,在openpyxl读单元格后立即调用
desensitize(value, field_name)函数,返回脱敏值再写入目标表 - 对接数据库迁移工具(如ShardingSphere),开启SQL改写模式:查询语句自动注入
CONCAT(LEFT(mobile,3),'****',RIGHT(mobile,4)),写入语句自动加密存储 - 每处理1000行,触发一次轻量校验:检查脱敏后字段是否符合掩码格式(如手机号是否为“138****5678”)、是否仍含原始敏感片段(用正则反查“\d{11}”是否残留)
迁移后:一致性校验 + 敏感字段穿透审计
迁移完成≠安全完成。必须验证两件事:一是业务数据没丢(数量、关联关系一致),二是敏感数据真脱了(不可逆、无残留)。
校验重点:
- 字段级比对:抽取源库脱敏前的100条身份证号,与目标库对应记录比对——确认全部变成“110101********1234”格式,且尾号与原值一致(保留业务可追溯性)
-
全库扫描:用
grep -r "1[3-9]\d{9}" target_db_dump/或脱敏工具的“反向探测”功能,确认无完整手机号明文残留 -
权限穿透测试:以低权限账号登录目标库执行
SELECT mobile FROM user LIMIT 5,验证返回结果已是脱敏态(非依赖应用层二次处理)
关键原则是:脱敏不是迁移的附加步骤,而是迁移的数据处理流水线中一个不可跳过的原子环节。校验不是事后补救,而是每个数据包流动时的实时守门员。

















