数据脱敏 DMS
DMS 专有功能
数据脱敏功能仅在 DMS 版本中可用。
数据脱敏通过自动识别数据源中的敏感字段并应用脱敏规则,确保在 SQL 工作台查询和数据导出等场景中,非授权用户无法获取真实的敏感数据。
功能入口
进入项目后,点击左侧导航栏 数据安全 → 数据脱敏。
页面包含四个标签页:总览、脱敏任务、识别规则模板、脱敏规则。
总览
总览页面展示当前项目中已配置的脱敏任务执行状态和敏感字段分布概况。若尚未配置脱敏任务,页面将提示前往脱敏任务页面进行配置。
脱敏任务
脱敏任务负责扫描数据源中的敏感字段,并绑定对应的脱敏规则。
任务列表
| 列名 | 说明 |
|---|---|
| 数据源 | 任务关联的数据源实例 |
| 任务类型 | 扫描类型(立即扫描 / 周期扫描) |
| 模板 | 任务使用的识别规则模板 |
| 下次执行 | 周期扫描任务的下次执行时间 |
| 状态 | 任务当前状态 |
| 操作 | 可对任务执行的管理操作 |
创建脱敏任务
点击 创建任务 按钮,进入创建向导,包含三个步骤:
步骤一:定义扫描任务
| 配置项 | 说明 |
|---|---|
| 数据源 | 选择要扫描的数据源实例 |
| 识别规则模板 | 选择用于匹配敏感字段的规则模板 |
| 敏感字段识别方式 | 选择识别策略(见下方说明) |
| 执行计划 | 选择扫描频率(见下方说明) |
敏感字段识别方式:
- 按字段名称识别:根据模板中的命名规则快速扫描匹配敏感字段,速度快、适合字段命名规范的场景
- 按字段名称和数据内容识别:在名称识别的基础上,额外对结果集中的数据进行采样分析,发现命名不规范但实际包含敏感信息的字段
执行计划:
- 立即扫描(一次性):创建后立即执行一次扫描
- 周期扫描(持续发现):按设定的周期自动执行扫描,持续发现新增的敏感字段
步骤二:执行扫描
系统自动执行扫描任务,扫描完成后展示发现的敏感字段列表。
步骤三:审核与配置
对扫描结果进行审核,确认敏感字段的识别是否准确,并配置对应的脱敏处理方式。
识别规则模板
识别规则模板定义了一组用于识别敏感字段的规则集合。创建脱敏任务时需要选择一个模板,系统据此判断哪些字段属于敏感数据。
模板列表
| 列名 | 说明 |
|---|---|
| 模板名称 | 模板名称 |
| 规则数量 | 模板中包含的识别规则数量 |
| 规则 | 模板包含的规则标签预览 |
| 操作 | 编辑、删除 |
系统提供一个 默认模板,包含 32 条内置识别规则,涵盖常见的敏感数据类型。
创建模板
点击 创建模板 按钮,设置模板名称并从脱敏规则列表中勾选需要包含的规则。
编辑模板
点击模板行的 编辑 按钮,可修改模板中包含的规则。默认模板的名称不可修改。
脱敏规则
脱敏规则定义了对各类敏感数据的识别条件和脱敏效果。每条规则包含数据类型名称、风险描述、脱敏算法和效果示例。
规则列表
| 列名 | 说明 |
|---|---|
| 序号 | 规则编号 |
| 脱敏类型 | 敏感数据的类型名称 |
| 说明 | 该类型敏感数据泄露可能带来的风险描述 |
| 脱敏效果 | 脱敏算法的处理方式说明 |
| 脱敏效果示例 | 脱敏前后的数据对比示例 |
内置脱敏规则
系统内置了 32 条脱敏规则,覆盖以下类别:
个人身份信息
| 脱敏类型 | 脱敏效果 | 示例 |
|---|---|---|
| 中国身份证 | 保留开头1位和结尾1位,中间替换为* | 110101199003072311 → 1***************1 |
| 姓名 | 保留开头1个汉字或3个英文字母,其余替换为* | 张三丰 → 张****** |
| 中国驾照 | 保留开头1位和结尾1位,中间替换为* | A12345678901234567 → A****************7 |
| 护照号 | 保留开头2位和结尾2位,中间替换为* | E12345678 → E1*****78 |
| 新加坡身份证 | 保留开头1位和结尾1位,中间替换为* | A123456789 → A********9 |
| 社会保险卡 | 保留开头1位和结尾1位,中间替换为* | A123456789 → A********9 |
联系方式
| 脱敏类型 | 脱敏效果 | 示例 |
|---|---|---|
| 电子邮箱 | 保留开头1位,忽略@符号,其余替换为* | alice@example.com → a****@*********** |
| 中国手机号 | 保留开头3位和结尾2位,中间替换为* | 13812345678 → 138******78 |
| 美国电话号码 | 保留开头2位和结尾2位,中间替换为* | 2025550123 → 20******23 |
金融信息
| 脱敏类型 | 脱敏效果 | 示例 |
|---|---|---|
| 借记卡号 | 保留结尾4位,其余替换为* | 6222021234567890123 → ***************0123 |
| 信用卡号 | 保留结尾4位,其余替换为* | 4111111111111111 → ************1111 |
| 银行账号 | 保留结尾4位,其余替换为* | 6222021234567890123 → ***************0123 |
| 美国银行账号 | 保留结尾4位,其余替换为* | 6222021234567890123 → ***************0123 |
| 银行分支机构号 | 保留结尾6位,忽略-符号,其余替换为* | 123456789 → 123****** |
| 比特币钱包地址 | 保留开头5位和结尾24位,中间替换为* | 1BoatSLRHtKN...TtpyT → 1Boat****...TtpyT |
| 美国纳税人识别号 | 保留结尾4位,其余替换为* | 900700001 → *****0001 |
地址与位置
| 脱敏类型 | 脱敏效果 | 示例 |
|---|---|---|
| 中文地址 | 使用地址内置算法进行脱敏 | 北京市朝阳区望京街道1号楼1001 → 北京市朝阳区望京街****号楼**** |
| 经纬度信息 | 替换为位置标签 \<LOCATION_MASKED> | 31.230416,121.473701 → \<LOCATION_MASKED> |
个人属性
| 脱敏类型 | 脱敏效果 | 示例 |
|---|---|---|
| 生日 | 保留开头4位,忽略-符号,其余替换为* | 1990-03-07 → 1990-**-** |
| 年龄 | 保留结尾1位,其余替换为* | 35 → 3* |
| 学历 | 替换为固定值 \<EDUCATION> | 本科 → \<EDUCATION> |
| 国籍 | 替换为标签形式 | 示例内容 → \<UNKNOWN> |
| 车牌号 | 保留开头4位和结尾2位,中间替换为* | 京A12345 → 京A***45 |
网络与设备标识
| 脱敏类型 | 脱敏效果 | 示例 |
|---|---|---|
| IP地址 | 保留开头6位数字,忽略.符号,其余替换为* | 192.168.10.24 → 192.16*.**.** |
| MAC地址 | 保留结尾8位,忽略:和-符号,其余替换为* | AA:BB:CC:DD:EE:FF → AA:BB:CC:**:**:** |
| 域名 | 保留结尾3位,忽略.符号,其余替换为* | api.example.com → api.example.*** |
| 设备ID | 保留开头4位和结尾4位,忽略-符号,其余替换为* | A1B2-C3D4-E5F6-G7H8 → A1B2-****-****-G7H8 |
| 用户ID | 保留开头1位,其余替换为* | user_123456 → u********** |
凭证与密钥
| 脱敏类型 | 脱敏效果 | 示例 |
|---|---|---|
| API密钥 | 替换为固定值 \<API_KEY> | ak_live_51H8Xv0e9nQ2kL4p → \<API_KEY> |
| 访问令牌 | 替换为固定值 \<TOKEN> | eyJhbGciOi...payload → \<TOKEN> |
| 账号凭据 | 替换为固定值 \<CREDENTIAL> | P@ssw0rd!2026 → \<CREDENTIAL> |
| 连接串 | 替换为固定值 \<CONNECTION_STR> | mysql://user:password@host:3306/db → \<CONNECTION_STR> |
脱敏生效范围
| 场景 | 是否生效 |
|---|---|
| SQL 工作台查询 | 生效 |
| 数据导出 | 生效 |
| SQL 审核/工单中的 SQL 内容 | 不生效(展示原始 SQL) |
注意事项
- 脱敏任务在项目级别生效,关联到具体的数据源实例
- 建议首次使用时采用「按字段名称和数据内容识别」方式,确保覆盖命名不规范的敏感字段
- 对于数据变更频繁的数据源,推荐使用周期扫描任务持续发现新增敏感字段
- 建议先在测试环境验证脱敏任务配置,确认无误后再应用到生产数据源