Skip to content

TDSQL 敏感数据管理

敏感数据识别与分类

敏感数据定义

  • 能够单独或与其他信息结合识别特定自然人的数据
  • 可能导致个人隐私泄露或企业利益受损的数据
  • 受法律法规保护的数据

敏感数据分类

1. 个人身份信息(PII)

  • 姓名、身份证号码、出生日期
  • 电话号码、电子邮箱地址
  • 住址、籍贯、民族
  • 生物识别信息(指纹、人脸等)

2. 金融信息

  • 银行卡号、信用卡号
  • 银行账户信息、支付密码
  • 交易记录、财务报表
  • 信用评分、贷款信息

3. 健康医疗信息

  • 病历记录、诊断结果
  • 药品使用记录、过敏史
  • 体检报告、基因信息

4. 企业内部敏感信息

  • 商业秘密、技术专利
  • 客户名单、销售数据
  • 内部管理文档、战略规划
  • 系统架构设计、安全配置

敏感数据发现与标记

1. 自动发现机制

敏感数据识别规则

sql
-- 创建敏感数据识别规则
CREATE SENSITIVE DATA RULE rule_id_card
TYPE "身份证号"
PATTERN '^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$';

-- 创建敏感数据识别任务
CREATE SENSITIVE DATA DISCOVERY TASK task_discovery
ON DATABASE *.*
USING RULES (rule_id_card, rule_phone, rule_bank_card);

-- 执行敏感数据发现任务
EXECUTE SENSITIVE DATA DISCOVERY TASK task_discovery;

发现结果管理

sql
-- 查询敏感数据发现结果
SELECT * FROM information_schema.sensitive_data_discoveries
WHERE task_id = 'task_discovery'
ORDER BY confidence DESC;

-- 标记敏感字段
ALTER TABLE users
MODIFY COLUMN id_card VARCHAR(18) SENSITIVE TYPE '身份证号';

ALTER TABLE users
MODIFY COLUMN phone VARCHAR(11) SENSITIVE TYPE '电话号码';

2. 手动标记方式

  • 通过TDSQL控制台进行字段标记
  • 使用SQL命令直接标记敏感字段
  • 导入敏感数据标记模板

敏感数据访问控制

1. 基于角色的访问控制(RBAC)

角色设计

  • 管理员角色:拥有全部权限
  • 审计角色:仅能查看审计日志
  • 开发角色:开发环境访问权限
  • 运维角色:运维操作权限
  • 业务角色:特定业务数据访问权限

权限配置示例

sql
-- 创建敏感数据访问角色
CREATE ROLE sensitive_data_viewer;

-- 授予特定表的只读权限
GRANT SELECT ON ecommerce.users TO sensitive_data_viewer;

-- 限制访问敏感字段
GRANT SELECT (id, name, email) ON ecommerce.users TO sensitive_data_viewer;
-- 不授予身份证号、电话号码等敏感字段访问权限

-- 分配角色给用户
GRANT ROLE sensitive_data_viewer TO 'app_user'@'%';

2. 动态数据脱敏(DDM)

脱敏策略配置

sql
-- 创建脱敏规则
CREATE MASKING RULE mask_id_card
TYPE "身份证号"
FUNCTION 'partial_mask' PARAMETERS ('start_pos' = 6, 'end_pos' = 4);

CREATE MASKING RULE mask_phone
TYPE "电话号码"
FUNCTION 'partial_mask' PARAMETERS ('start_pos' = 3, 'end_pos' = 4);

-- 应用脱敏规则到角色
APPLY MASKING RULE mask_id_card, mask_phone TO ROLE sensitive_data_viewer;

脱敏函数类型

  • partial_mask:部分掩码(如:110101XXXXXX1234)
  • full_mask:完全掩码(如:XXXXXXXXXXXXXXXX)
  • hash_mask:哈希掩码(如:e10adc3949ba59abbe56e057f20f883e)
  • random_mask:随机替换(如:138XXXX1234 → 159XXXX5678)

敏感数据加密

1. 透明数据加密(TDE)

启用TDE

sql
-- 启用TDE
ALTER INSTANCE ENABLE TRANSparent DATA ENCRYPTION;

-- 设置TDE加密算法
SET GLOBAL tde_encryption_algorithm = 'AES-256-CBC';

-- 查看TDE状态
SHOW GLOBAL VARIABLES LIKE 'tde%';

2. 字段级加密(FLE)

加密函数使用

sql
-- 使用内置加密函数
INSERT INTO users (name, id_card, encrypted_id_card)
VALUES ('张三', '110101199001011234', AES_ENCRYPT('110101199001011234', 'encryption_key'));

-- 查询加密数据
SELECT name, AES_DECRYPT(encrypted_id_card, 'encryption_key') AS decrypted_id_card
FROM users WHERE id = 1;

敏感数据审计与监控

1. 访问审计

sql
-- 创建敏感数据访问审计规则
CREATE AUDIT RULE audit_sensitive_access
ON DATABASE *.*
FOR SELECT, UPDATE, DELETE
WHERE sensitive_data_access = TRUE;

-- 启用审计规则
ENABLE AUDIT RULE audit_sensitive_access;

2. 异常行为监控

  • 登录异常检测
  • 敏感数据批量访问监控
  • 非工作时间访问告警
  • 异常IP地址访问限制

敏感数据生命周期管理

1. 数据收集阶段

  • 最小化收集原则
  • 明确数据收集目的
  • 获得用户授权
  • 数据分类标记

2. 数据存储阶段

  • 加密存储
  • 访问控制
  • 定期备份
  • 存储介质安全

3. 数据使用阶段

  • 按需访问
  • 脱敏处理
  • 审计跟踪
  • 使用范围限制

4. 数据销毁阶段

  • 安全删除
  • 介质销毁
  • 销毁审计
  • 合规证明

合规要求与实践

1. 法律法规要求

  • 《中华人民共和国个人信息保护法》
  • 《中华人民共和国数据安全法》
  • 《网络安全等级保护条例》
  • GDPR、HIPAA等国际标准

2. 最佳实践

1. 敏感数据治理框架

  • 建立专门的数据治理团队
  • 制定敏感数据管理政策
  • 定期进行合规审计
  • 开展员工培训

2. 技术防护措施

  • 实施多层次安全防护
  • 定期进行漏洞扫描
  • 及时更新安全补丁
  • 建立应急响应机制

3. 流程管理

  • 建立敏感数据访问审批流程
  • 实施数据泄露应急预案
  • 定期进行安全演练
  • 持续改进安全策略

常见问题(FAQ)

Q1: 如何自动发现数据库中的敏感数据?

A1: TDSQL提供了敏感数据自动发现功能,可以通过创建识别规则和发现任务来自动扫描数据库中的敏感数据。支持正则表达式、内置规则模板等多种识别方式,能够识别身份证号、电话号码、银行卡号等常见敏感数据类型。

Q2: 动态数据脱敏会影响查询性能吗?

A2: 动态数据脱敏会产生一定的性能开销,但影响较小(通常在5%以内)。TDSQL采用了高效的脱敏算法和优化机制,能够在保证数据安全的同时,尽量减少对查询性能的影响。

Q3: 如何处理历史数据中的敏感信息?

A3: 对于历史数据中的敏感信息,可以采取以下措施:

  • 使用批量更新语句进行脱敏处理
  • 实施字段级加密
  • 建立历史数据归档策略
  • 定期清理不再需要的敏感数据

Q4: 敏感数据访问权限如何管理?

A4: 敏感数据访问权限管理应遵循最小权限原则:

  • 基于角色分配权限
  • 实施细粒度的字段级权限控制
  • 建立权限审批流程
  • 定期进行权限审计和回收

Q5: 如何应对数据泄露事件?

A5: 应对数据泄露事件应遵循以下流程:

  • 立即启动应急响应机制
  • 定位泄露源并采取措施防止进一步泄露
  • 评估泄露范围和影响
  • 按照法律法规要求及时通知相关方
  • 进行事后分析和改进

Q6: 敏感数据管理如何与业务需求平衡?

A6: 敏感数据管理与业务需求平衡可以通过以下方式实现:

  • 基于业务场景制定差异化的保护策略
  • 采用动态脱敏等技术,在保护数据的同时不影响业务使用
  • 建立合理的权限管理机制,确保业务人员能够正常访问所需数据
  • 定期与业务部门沟通,调整敏感数据管理策略