1. 数据库安全性概述
1.1 数据库安全性的重要性
数据库安全性是保护数据库防止非法访问、数据泄露、篡改或破坏的能力。它随着数据共享和网络化应用的普及而变得至关重要。
现实案例:
- 2016年,某国医院遭受黑客攻击,黑客加密数据库并勒索赎金,这揭示了数据库安全防护的重要性。
1.2 数据库的不安全因素
-
非法用户的恶意操作:
黑客窃取用户凭证,进行伪装访问,破坏、修改甚至勒索数据库数据。 -
敏感数据泄露:
如通过 SQL注入 攻击,使未授权用户执行操作,泄露或篡改敏感信息。 -
脆弱的安全环境:
数据库依赖的计算机系统(硬件、操作系统、网络)存在漏洞,可能成为攻击的突破口。
1.3 安全标准简介
- TCSEC(可信计算机系统评估准则):
- 美国国防部提出的安全标准,安全级别从低到高分为 D、C1、C2、B1、B2、B3、A1。
- D级最低(无安全保护),A1级最高(形式化验证设计)。
- CC(通用准则):
- 国际安全标准,评估保证级别分为 EAL1 - EAL7,安全性逐渐提高。
2. 数据库安全性控制
2.1 用户身份鉴别
鉴别方法
-
静态口令鉴别:
使用用户自己设定的固定口令,安全性较低。建议结合 双因子鉴别(口令 + 数字证书)。 -
动态口令鉴别:
口令动态变化(如验证码、动态令牌),安全性较高。 -
生物特征鉴别:
基于指纹、虹膜、掌纹等,安全性更高。 -
智能卡鉴别:
通过智能卡结合 个人身份识别码(PIN) 实现身份验证。 -
入侵检测:
通过检测规则和实时分析,发现并处理入侵行为(如邮件报警、锁定用户)。
2.2 存取控制
-
自主存取控制(DAC):
- 用户根据权限操作数据对象,并可将权限转授他人。
- 如:SQL GRANT 和 REVOKE 语句:
GRANT SELECT ON TABLE Student TO U1; REVOKE SELECT ON TABLE Student FROM U1;
-
强制存取控制(MAC):
- 基于数据的密级(如绝密、机密)和用户许可证级别。
- 规则:
- 读权限: 主体的许可证级别 ≥ 客体的密级。
- 写权限: 主体的许可证级别 ≤ 客体的密级。
- 应用场景: 军事、政府等高敏感数据环境。
-
角色管理机制:
- 通过角色分组简化权限管理:
CREATE ROLE R1; GRANT SELECT, INSERT ON TABLE Student TO R1; GRANT R1 TO 用户1, 用户2;
- 通过角色分组简化权限管理:
2.3 数据库安全性控制模型
数据库安全控制包括以下层次:
-
事前控制:
身份鉴别与入侵检测。 -
事中控制:
SQL语句处理层提供访问权限检查。 -
事后控制:
审计用户行为。 -
存储保护:
敏感数据加密存储。 -
传输保护:
通过链路加密或端到端加密保证数据传输安全。
3. 视图机制
视图是数据库安全性的辅助技术,可以隐藏敏感数据,对不同用户赋予不同权限。
视图定义及权限设置示例
CREATE VIEW CS_Student AS
SELECT * FROM Student WHERE Smajor='计算机科学与技术';
GRANT SELECT ON CS_Student TO 王平;
GRANT ALL PRIVILEGES ON CS_Student TO 张明;
- 含义: 王平只能查询视图,张明可以查询并修改视图。
4. 审计
审计通过记录用户对数据库的操作,监控非法访问和关键操作。
审计功能
-
事件类型:
- 语句事件:对 SQL 操作(如 DDL、DML)进行审计。
- 模式对象事件:审计表或视图上的 SELECT 和 DML 操作。
-
审计设置示例
-- 开启审计功能 SET AUDIT_TRAIL TO ON; -- 对 SC 表的修改操作审计 AUDIT ALTER, UPDATE ON SC BY ACCESS;
-
审计日志管理:
- 日志需先转储再删除。
- 只允许审计员查看和转储,防止篡改。
5. 数据加密
数据加密是保护数据存储和传输的主要手段。
加密类型
-
存储加密:
- 内核级加密:对用户透明,性能高。
- 非透明加密:需要应用程序调用加密函数。
-
传输加密:
- 链路加密: 报头和报文都加密。
- 端到端加密: 仅加密报文,效率更高。
加密算法
- 对称加密: AES算法(速度快)。
- 非对称加密: RSA算法(安全性高)。
6. 其他安全性保护
-
推理控制:
防止用户通过低密级数据推测高密级信息。 -
隐蔽信道:
解决数据泄露的隐蔽通道问题。 -
数据隐私:
管控个人数据的收集、存储和发布。 -
三权分立:
分离数据库管理员的权限,避免权限过于集中。
总结
数据库的安全性机制是保障数据可靠性、保密性的重要组成部分。本章涵盖了以下技术:
- 用户身份鉴别与入侵检测。
- 存取控制(自主存取控制与强制存取控制)。
- 视图机制与权限分配。
- 审计与日志管理。
- 数据加密与传输安全。
随着大数据、云计算、物联网的发展,数据库安全面临新的挑战。未来需要更多创新的技术支持,如 隐私保护统计发布 和 分布式数据访问控制。