摘要:介绍常见数据库安全机制的原理:
1.身份认证
2.安全传输
3.安全审计
4.访问控制
5.数据发现
6.数据防篡改
7.加密函数
8.透明加密
9.数据脱敏
10.全密态加密
11.机密计算
1 数据库安全概述
1.1 数据库基本功能
本文讨论数据库安全,为方便理解,将大部分软件架构简化为2个主体:应用端与数据库端。
- 应用:实现业务逻辑,收集业务数据,将数据发送至数据库,由数据库提供数据存储功能,并且,要求数据库提供数据查询功能
- 数据库:存储业务数据,向应用提供SQL接口,接收应用发送的SQL语句,并处理SQL语句。同时,解决高并发、高性能、高可靠的问题
大部分场景中,应用与数据库部署于不同主机上,以下是一个应用使用数据库实现数据存储与查询的示例流程:
建立连接:应用与数据库建立网络连接
定义数据:应用向数据库发送以下SQL语句,创建1个表
CREATE TABLE t1 (c1 INT, c2 TEXT);存储数据:应用向数据库发送以下SQL语句,向表中存储数据
INSERT INTO t1 VALUES (1, 'abc');查询数据:应用向数据库发送以下SQL语句,从表中查询数据
SELECT * FROM t1;
1.2 数据库基本架构
数据库架构较复杂,此处先将数据库架构简单划分为以下3个部分:
- 数据库驱动:集成到应用内部,向应用提供编程接口,常见接口有:连接数据库、执行SQL语句等
- 计算模块:解析SQL语句,并按合理地执行流程处理SQL语句中的请求,调用存储模块接口实现数据存储与读取
- 存储模块:合理组织数据,调用IO接口,实现磁盘读写操作。向计算模块提供接口
1.3 数据库安全威胁
在应用使用数据库的过程中,攻击者可能对整个系统造成恶意攻击,攻击的最终目标是:
- 破坏业务数据:窃取、伪造、篡改、损坏等
- 破坏业务系统:拒绝服务等
攻击者针对多个系统薄弱点进行功能:
- 数据库网络:协议等
- 数据库应用:身份认证机制等
- 数据库主机:操作系统、软件(除数据库外的其他软件)、硬件等
假设应用与数据库部署在不同主机,分为是下图中的主机c和主机z,常见安全威胁的架构图如下:

1.4 数据安全架构
针对各类威胁,数据库提供多种安全机制,保护数据与数据库安全,常见的安全机制如下:
- 身份认证:阻止非法用户与数据库建立网络连接
- 安全传输:阻止非法用户窃取、篡改、伪造、..传输数据
- 安全审计:记录非法/合法用户对数据库的操作
- 访问控制:缩小非法用户对数据库的访问范围
- 数据发现:协助合法用户识别敏感数据
- 数据防篡改:识别非法用户篡改、伪造、..存储数据
- 加密函数:协助合法用户加密存储数据
- 透明加密:阻止非法用户窃取、篡改、伪造、..存储数据
- 数据脱敏:缩小非法用户对数据内容的访问范围
- 全密态加密:阻止非法用户窃取、篡改、伪造、..传输、计算、存储数据
- 机密计算:阻止非法用户窃取、篡改、伪造计算数据
按对数据处理的顺序,各安全机制的架构如下图所示:
