数据库原理第四章知识点
4.1数据库安全性概述
4.1.1数据库的不安全因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中重要或敏感的数据被泄露
- 安全环境的脆弱性
4.1.2安全标准
TCSEC/TDI安全级别划分
4.2数据库安全性控制
常用方法:
- 用户身份鉴别
- 存取控制
- 视图
- 审计
- 数据加密
4.2.1用户身份鉴别
四种方法:
- 静态口令鉴别
- 动态口令鉴别
- 智能卡鉴别
- 生物特征鉴别
4.2.2存取控制
存取控制机制组成:
- 定义用户权限
- 合法权限检查
4.2.3自主存取控制方法
使用SQL的GRANT语句和REVOKE语句实现
4.2.4授权:授予和回收
权限授予:GRANT
GRANT <权限>[, <权限>]…
ON <对象类型><对象名>[,<对象类型><对象名>]…
TO <用户>[,<用户>]…
[WITH GRANT OPTION];
例子:
GRANT SELECT
ON TABLE Student
TO U1;
权限回收:REVOKE
REVOKE <权限>[, <权限>]…
ON <对象类型><对象名>[,<对象类型><对象名>]…
FROM <用户>[,<用户>]…[CASCADE|RESTRICT];
例子:
REVOKE SELECT
ON TABLE Student
FROM U1;
创建数据库模式的权限
CREATE USER<username>
[WITH][DBA|RESOURCE|CONNECT];
4.2.5数据库角色
被命名的一组与数据库操作相关的权限
- 角色的创建:
CREATE ROLE <角色名> - 给角色授权:
GRANT <权限>[, <权限>]…
ON <对象类型><对象名>[,<对象类型><对象名>]…
TO <角色>[,<角色>]… - 将一个角色授予其他角色或用户
GRANT <角色1>[,<角色2>]…
TO <用户1>[,<用户2>]…
[WITH GRANT OPTION]; - 角色权限的收回
REVOKE <权限>[, <权限>]…
ON <对象类型><对象名>[,<对象类型><对象名>]…
FROM <角色>[,<角色>]…
4.2.6强制存取控制
自主存取控制对数据存取权限进行安全性控制,而数据本身并无安全性标记。
主体与客体
主体是系统中的活动实体
课题是系统中的被动实体,受主体操纵
敏感度标记
- 绝密
- 机密
- 可信
- 公开
绝密≧机密≧可信≧公开
主体的敏感度标记称为许可证
客体的敏感度标记称为密级
强制存取控制规则
- 仅当主体的许可证级别大于等于客体的密级时,该主体才能读相应客体
- 仅当主体的许可证级别小于等于客体的密级时,该主体才能写相应客体
DAC+MAC安全检查
实现强制存取控制MAC是首先要实现自主存取控制DAC——较高安全性级别提供的安全保护要包含较低级别的所有保护
4.3视图级制
将要保密的数据对无权存取这些数据的用户隐藏起来,对数据据提供一定程度的安全保护
4.4审计
预防性措施:
- 用户身份鉴别
- 自主存取控制
- 强制存取控制
- 视图
监控措施:审计
审计就是启用一个专用的审计日志将用户对数据库的所有操作记录在上面
C2以上安全级别的DBMS必须具有审计功能
可被审计事件
- 服务器事件
- 系统权限
- 语句事件
- 模式对象事件
设计审计功能
- 用户级审计
- 系统级审计
4.5数据加密
防止数据库中的数据在存储和传输中失密的有效手段
加密方法:
- 存储加密
- 透明存储加密
- 非透明存储加密
- 传输加密
- 链路加密
- 端到端加密
4.6其他安全性保护
- 推理控制
- 隐蔽信道