数据库安全性概述
数据库的安全性是指报数据库以防止不合法使用所造成的数据泄露、更改或破坏
数据库的不安全因素
1.非授权用户对数据的恶意存取和破坏
2.数据库中敏感的数据被泄露
3.安全环境的脆弱性
安全标准简介
TCSEC(桔皮书) | 1985年美国国防部发布的《DoD可信计算机系统评估准则》 |
---|---|
CC | 为满足全球IT互认标准化,将各自独立的准则集合成一组单一能被广泛使用的IT安全准则目前CC已经基本取代来TCSEC,成为评估信息产品安全性的主要标准 |
TCSEC/TDI(紫皮书) | 1991年美国国家计算机安全中心将TCSEC扩展到数据库管理系统,TCSEC/TDI定义来数据库管理系统的设计与用以进行安全性级别评估的标准 |
信息技术标准的发展史
TCSEC/TDI将系统划分为4组7个等级,以此是D、C(C1、C2)、B(B1、B2、B3)、A(A1)
(D < C2 < C1 < B3 < B2 < B1 < A1)
TCSEC/TDI将系统划分
安全级别 | 定义 |
---|---|
A1 | 验证设计 |
B1 | 安全域 |
B2 | 结构化保护 |
B3 | 表级安全保护 |
C1 | 受控存取保护 |
C2 | 自主安全保护 |
D | 最小保护 |
数据库安全性控制
用户身份鉴别
- 静态口令鉴别(密码)
- 动态口令鉴别(短信密码、动态令牌等)
- 生物特征鉴别(指纹、虹膜、掌纹等)
- 智能卡鉴别(一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能)
存取控制
存取控制主要包括定义用户权限和合法权限检查两部分
- 定义用户权限,并将用户全权限登记到数据字典(安全规则或授权规则)
- 合法权限检查(定义用户权限和合法权限检查机制一起组成了数据库管理系统的存取控制子系统)
C2级的数据库管理系统支持自主存取控制
B1级的数据库管理系统支持强制存取控制
1. 自主存取控制:用户对于不同的数据库对象具有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的权限转授给其他用户(灵活)
2. 强制存取控制:每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只具有合法许可证的用户才可以存取(严格)
自主存取控制
用户权限有两要素组成:数据库对象和操作类型
在数据库系统中定义存取权限称为授权
存取控制的对象不仅有数据库本身还(基本表中的数据、属性列上的数据)还有数据库的模式(包括模式、基本表、视图和索引的创建等)
权限的查看
SHOW GRANTS FOR <用户>[,<用户>];
eg:
SHOW GRANTS FOR 'HJL_user'@'localhost';
权限的授予与收回
-- 授予权限
GRANT <权限>[,<权限>]···
ON <对象类型> <对象名>[,<对象类型> <对象名>]
TO <用户>[,<用户>]
[WITH GRANT OPTION];
eg:
GRANT SELECT,UPDATE
ON student
TO 'localhost'@'HJL_mysql';
--回收权限
REMOVE <权限>[,<权限>]···
ON <对象类型> <对象名>[,<对象类型> <对象名>]
FROM <用户>[,<用户>]····;
--一次性回收所有权限
REMOVE ALL PRIVILEGES
ON <对象类型> <对象名>[,<对象类型> <对象名>]
FROM <用户>[,<用户>]····;
eg:
REVOKE SELECT
ON hjl_sm.student
FROM 'localhost'@'HJL_mysql';
REMOVE ALL PRIVILEGES
ON *.*
FROM 'localhost'@'HJL_mysql';
视图机制
可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内。也就是说通过视图机制把要保密的数据对无权的用户隐藏起来,从而自动对数据提供一定程度的安全保护机制。
审计
审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。审计员可以利用审计日志监控数据库中的各种行为,重现导致现有数据状况的一系列时间,找出非法存取数据的人、时间和内容等。
- 审计事件
审计事件一半有多类别,例如:- 服务器事件:审计数据库服务器发生的事件(服务器的启动、停止、服务器配置文件的加载)
- 系统权限: 对系统拥有的结构或模式对象进行操作的审计,要求该操作权限是通过系统权限获得。
- 语句事件:对SQL语句及DCL语句审计。
- 模式对象事件: 对特定模式对象上进行的SELECT或DML操作的审计。
- 审计功能
- 基本功能,提供多种审计查阅方式:基本的、可选的、有限的,等等。
- 提供多套的审计规则
- 提供审计的分析和报表功能
- 审计日志管理功能
- 系统提供查询审计设置及审计记录信息的专门视图
数据加密
机密的基本思想是根据一定的算法将原始数据—明文变换成不可直接识别的格式—密文,从使得不知道解密算的人无法获知数据的内容。
数据加密主要包括存储加密和传输加密。