一句话定义
数据库安全体系沿「传输加密 → 存储加密 → 访问控制 → 数据脱敏 → 审计追溯 → 隐私合规」纵深展开:每一层回答一个问题——数据在被谁、在哪、以什么形态看到。
为什么重要
- 数据库是个人信息的最终容器,泄露事件的罚则(GDPR 最高全球营收 4%、个人信息保护法上限 5000 万元)足以摧毁业务。
- 内部威胁与误操作占比高于外部攻击:权限与审计的价值常被低估。
- 「上不上加密」不再是可以争论的问题——它是合规基线与kp-030 选型矩阵的硬性 gate。
前置知识
kp-003(约束与权限对象的基础)、kp-030(选型中的合规维度)。
核心概念
- 传输加密:TLS 强制连接,杜绝链路窃听。
- 静态加密(At-rest):表空间/磁盘层加密(TDE)与文件系统加密;密钥由 KMS 管理、支持轮换。
- 访问控制:角色与最小权限(Least Privilege)、行级安全(RLS)、列级权限。
- 数据分级与脱敏:静态脱敏(测试环境假数据)与动态脱敏(查询时遮蔽手机号中间四位)。
- 审计:登录、DDL、敏感表访问的留痕与告警。
- 隐私原则:目的限定、最小收集、可删除(被遗忘权)、跨境传输合规。
- 匿名化 vs 假名化:前者不可复原(合规口径更硬),后者保留可回溯性但需密钥保护。
原理与机制
纵深防御的层次逻辑:即使应用被打穿,DB 账号隔离(应用账号只授 DML 不授 DDL/DROP)把爆炸半径限制在业务表;即使 DBA 账号泄露,静态加密让拖走的文件不可读(密钥在 KMS,不在备份里);即使数据被合法读取,动态脱敏让客服看不到完整手机号;即使以上全失败,审计日志能回答「谁在何时读了什么」,满足追责与监管举证。行级安全(PG RLS)把过滤条件下沉到引擎:CREATE POLICY p ON orders USING (user_id = current_setting('app.uid')::int),应用不再依赖自身 WHERE 拼装隔离,杜绝「忘了加 user_id 条件」这类越权类漏洞。删除权的机制难题:备份与副本中的个人数据也要能删除,工程解法是「加密 + 密钥销毁」(删密钥即等效删除)或备份到期滚动覆盖,并写入保留策略(衔接 kp-031)。
实例或案例
用户中心合规改造清单:连接全部强制 TLS;应用账号 app_rw 只授业务库 DML,DBA 操作走堡垒机双人复核;手机号列动态脱敏(非授权角色读出 138****5678);身份证等强标识静态加密(应用层 AES-GCM,密钥入 KMS 按版本轮换);测试库用静态脱敏工具生成假数据;审计开启敏感表访问留痕,异常批量读取触发告警;数据保留策略写明订单数据 5 年后匿名化——每一条都能对应到上文的某一层机制。
常见误区
- 认为「开了磁盘加密就安全」:静态加密只防「偷硬盘」,不防持有合法连接的攻击者,访问控制不可省略。
- 测试环境用真实数据:脱敏遗漏的测试库是泄露重灾区。
- 把加密密钥与密文存在同一份备份里:等于把钥匙挂在锁上。
自测题
- 静态加密与动态脱敏分别防御哪类风险? 答:静态加密防「存储介质与备份文件被物理/文件层窃取」;动态脱敏防「合法连接者看到不该看的明文」,两者互补不可替代。
- 行级安全解决了什么工程顽疾? 答:把租户/用户隔离从应用层 WHERE 下沉到引擎策略,杜绝「某处漏加过滤条件」导致的越权读取。
公式或模型
本节不适用:本知识点是纵深控制与合规原则,不属于定量模型范畴。
图示
直观类比
像运送珠宝:TLS 是装甲车(路上不丢);访问控制是金库门禁(谁能进、进哪间);静态加密是保险柜(就算库房被搬空也打不开);脱敏是给参观者看「遮住关键部位」的复制品;审计是全屋监控录像——每一层都为「上一层失效」准备。
与其他知识点的关系
kp-003 的约束体系是权限的近亲;kp-031 的保留策略必须与删除权协调;kp-030 把合规作为选型 gate;kp-028 提供监管环境演进的历史语境。
延伸阅读
- 《数据密集型应用系统设计》(Martin Kleppmann)第 11 章隐私与伦理
- GDPR(Regulation (EU) 2016/679)第 5、17 条原则与删除权