2026 数据分类分级落地指南:从一张表到一份能过审的报告
《数据安全法》《个人信息保护法》之后,"分类分级"从纸面要求变成监管硬指标。本文用一条真实的字段链路,讲清楚 S1–S5 到底怎么定、定错了会怎样、以及如何让结论经得起审计。
监管检查来的时候,最先被问的不是"你们有没有做分类分级",而是 "这个字段为什么定成这一级"。
很多企业栽在第二个问题上。表格做得很漂亮,每个字段都标了 S1 到 S5,但一旦被追问依据,答案就含糊起来——"凭经验""参考了同行""系统自动跑的"。这些回答在审计面前都站不住。
本文不讲法条复述,讲一件具体的事:一个 id_card_no 字段,怎么走完从识别到定级、再到可辩护报告的完整链路。
先把级别说清楚
国内主流做法是 S1–S5 五级,对应监管口径的三档:
| 内部分级 | 监管口径 | 典型字段 |
|---|---|---|
| S1 | 一般数据 | created_at、status |
| S2 | 一般数据 | nickname、city |
| S3 | 一般数据 | full_name、email |
| S4 | 重要数据 | phone、bank_card |
| S5 | 核心数据 | id_card_no、biometric |
部分行业只用四级(S1–S4),把核心数据并入重要数据。用几级不是技术问题,是行业监管要求问题——金融、医疗、政务的口径都不一样。
"身份证号一定是 S5"——不对。脱敏后的身份证号(只保留出生地段)可能只到 S3。定级看的是字段当前承载的信息,不是字段名。
定级不能靠匹配,要靠理解
最朴素的做法是正则匹配字段名:看到 id_card、身份证 就打 S5。这套规则在 demo 里很好用,进了真实库就崩——
- 字段叫
user_credential,里面存的是身份证号 → 规则漏判 - 字段叫
id_card_type,存的是"身份证/护照/军官证"枚举值 → 规则误判成 S5
DataConnGo 的做法是 结合字段名、注释、样本数据、表上下文一起判断。id_card_no 这个字段,引擎会同时看到:
字段名: id_card_no
注释: 用户实名身份证号
样本: 3301**********1234, 1101**********5678
所在表: user_identity(含 real_name、phone)四个信号叠加,定级才稳。单看任何一个都会错。
让结论"可辩护"
定级只是开始。真正难的是当监管问"为什么"时,你能拿出依据。
DataConnGo 给每个分级结论附三样东西:
- 命中的规则与法条——比如《个人信息保护法》第 28 条敏感个人信息
- 置信度与判定信号——字段名 / 注释 / 样本各自的贡献
- 可复核的样本——脱敏后的实际数据片段
这样一份报告,不是"系统说 S5",而是"基于注释、样本、所在表三个信号,命中敏感个人信息规则,置信度 0.94,依据 PIPL 第 28 条"。前者会被挑战,后者能过审。
30 分钟跑完一个库
过去这套流程靠人工,一个中等规模的库要排查几周。现在的目标是 连上数据库到出报告,30 分钟:
- 自动反射 schema,逐字段采样
- AI 逐字段定级 + 生成依据
- 一键导出合规报告
把人从"逐字段标注"里解放出来,去做机器做不了的事——判断边界 case、对接监管口径、处理行业特例。
想看引擎怎么对一个字段定级、依据长什么样?在 DCG Api 文档 里有 classify/fields 接口的完整示例。