1. 敏感数据识别(PII、PHI、PCI)的自动扫描?
如何通过自动扫描技术识别数据库中的敏感数据,包括个人身份信息(PII)、受保护健康信息(PHI)和支付卡行业数据(PCI)?
- 敏感数据分类(PII、PHI、PCI)的识别范围
- 自动扫描的常用技术手段(正则、NLP、AI 分类)
- 扫描结果的落地与治理联动
自动扫描的核心思路是"先识别、后分类、再治理"。底层技术通常分三层:第一层是正则表达式与关键词匹配,针对身份证号、手机号、银行卡号、邮箱等有明确格式的字段,用正则(如银行卡 Luhn 校验、身份证 18 位校验)快速命中;第二层是机器学习/自然语言处理,对列名、注释、样本值进行语义推断,识别格式不固定但语义明确的字段(如"患者姓名""家庭住址");第三层是规则与字典结合,配置业务字典(如员工表、患者表)提升召回率。识别结果写入元数据平台,打上 PII/PHI/PCI 标签,并联动权限、脱敏与审计。PCI 场景对卡号、CVV、磁条数据有明确合规要求,识别后需限制存储与展示。
单一正则无法覆盖所有敏感类型,需正则+语义+字典的多策略组合;同时要避免误报与漏报,识别引擎应提供置信度并可人工复核,识别结果应可追溯、可增量刷新。
-- 用正则识别疑似手机号(中国大陆)的字段
SELECT column_name, table_name
FROM information_schema.columns
WHERE table_schema = 'public'
AND data_type IN ('varchar','text','char')
AND (lower(column_name) LIKE '%phone%' OR lower(column_name) LIKE '%mobile%');
-- 对样本值做 Luhn 校验识别疑似银行卡号
SELECT card, (Luhn_Check(card)) AS is_valid FROM (
SELECT '6222021234567890' AS card
) t;