跳转到主要内容
Develop Tools
← 返回使用指南

如何脱敏 SQL 表名、列名与值

在 SQL 中,业务信息不仅会出现在客户名称等值里,也可能体现在表名和列名中。本文说明在保留语法和标识符对应关系的同时,应将哪些内容脱敏。

提取 SQL、脱敏值和标识符以及检查语法的过程
提取 SQL、脱敏值和标识符以及检查语法的过程

SQL中容易泄露的信息

WHERE子句中的字符串和INSERT语句中的值很明显,但业务内容也可以从customer_contract和employee_salary等标识符推断出来。还检查连接目标名称、模式名称、注释和存储过程名称。

  • 客户编号、姓名、地址、电子邮件地址等值。
  • 架构名称和表名称,包括内部系统名称
  • 解释业务规则的列名称、常量和注释
  • 连接字符串、数据库链接、主机名、文件路径

不破坏结构的更换步骤

  1. 仅复制调查所需的 SQL 语句以及单独的连接设置和执行日志。
  2. 决定要脱敏哪些类别:表、列、值和注释。
  3. 同一标识符应使用相同的替代名称,以保持 JOIN 和子查询中的对应关系。
  4. 选择目标DB,检查是否保留DB特有的表达式,如引号、函数、分页语法等。

分享前需要检查的要点

检查项目检查要点
语法是否缺少括号、引号或终结符?
对应关系别名、JOIN 条件和 CTE 引用是否具有相同的替换名称?
日期、ID、LIKE 条件或 IN 子句中是否剩余任何实际数据?
注释是否留下联系人姓名、问题编号、客户姓名?

脱敏后的SQL不会在生产DB上执行,而是被视为共享副本。如果您需要确认操作,请在隔离环境中使用测试数据进行操作。

在浏览器中试用

输入内容仅在浏览器中处理。请保留原始数据,确认结果无误后再保存或分享。

打开 SQL 脱敏工具