数据库系统概论——数据安全保护措施
视图机制
保密数据对无权存取的用户隐藏,对数据提供安全保护
授予用户存取某些行的权限
建立计算机系所有教师的视图
create view cs_instructor
as
select *
from instructor
where dept_name = 'CS';
在视图上进一步定义存取权限
grant select
on cs_instructor
to user1;
审计
审计是一种监控式措施,指的是启用一个专用的审计日志(Audit Log
),将用户对数据库的所有操作记录在上面,供审计员监控数据库的各种行为,发现非法存取和潜在威胁
可审计事件
服务器事件
- 审计数据库服务器发生的事件
系统权限
-
对系统拥有的结构或模式对象进行操作的审计
-
要求该操作的权限是通过系统权限获得的
语句事件
- 对用户提交的所有
SQL
语句进行审计
模式对象事件
- 对特定模式对象上进行的
SELECT
或DML
操作的审计
审计日志管理
-
多种审计查阅方式
-
多套审计规则
-
提供审计分析和报表功能
-
审计日志管理功能
-
提供查询审计设置及审计记录信息的专门视图
可选性
-
消耗时间和空间
-
DBA可以灵活选择是否开启
-
审计功能一般用于安全要求较高的部门
功能设置
设置审计功能
audit <authority>
on <table name>
- 用户级审计
任何用户对自己创建的数据库表和视图可设置审计功能
- 系统级审计
只能有DBA设置
- 示例
对department表的修改结构或数据的操作进行审计
audit alter, update
on department;
取消审计设置
- 示例
取消对department表的修改结构或数据的操作的审计
noaudit alter, update
on department;
数据加密
数据加密是防止数据库中的数据在存储和传输过程中被窃取的有效手段
基本思想
根据一定算法将原始的明文(Plain text
)数据交换为不可直接识别的密文(Cipher text
)
加密方法
存储加密
- 透明存储加密
内核级,对用户完全透明,数据写入磁盘时自动加密,读出时自动解密,数据库应用程序不需要修改,只需在创建表语句中说明需要加密的字段即可,这种方式性能好、安全完备性高
- 非透明存储加密
通过多个加密函数加密
传输加密
- 链路加密
传输信息的报头和报文均加密
- 端到端加密
发送端加密,接收端解密,只加密报文不加密报头,容易被监听
其他安全性保护
推理控制
处理强制存取控制未解决的问题,避免用户利用能够访问的数据推理得到更高级别的数据
常用方法
基于函数依赖的推理控制
基于敏感关联的推理控制
隐蔽信道
处理强制存取控制未解决的问题,防止高安全等级用户向低安全等级用户主动传输信息而导致的高安全等级敏感信息泄露
鸣谢
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解