第四章:数据库安全
1.数据库安全性
数据库的安全性是指保护数据库以防止不合法适应所造成的数据泄露,更改或破坏。
1.1数据库的不安全因素
- 非授权用户对数据库的恶意存取和破坏
- 身份鉴别
- 存取控制和视图等技术
- 数据库中重要火敏感度数据被泄露
- 存取控制
- 数据加密存储
- 加密传输
- 安全环境的脆弱性
1.2 安全标准
按照四个方面描述安全性级别
- 安全策略
- 责任
- 保证
- 文档
2.数据库安全性控制
措施
- 身份鉴别
- 多层存取控制
- 审计
- 视图
- 数据加密
2.1用户身份鉴别
- 静态口令鉴别:电话号,密码,安全性较低
- 动态口令鉴别:一次一密,短信验证码,动态令牌
- 生物特征识别:指纹,虹膜,掌纹
- 智能卡
2.2存取控制
存取控制机制主要包括定义用户权限和合法权限检查两部分
- 定义用户权限
- 合法权限检查
两类方法一起组成了数据库管理系统的存取控制子系统
- 自主存取控制:不同的数据库对象有不同的存取权限,不同用户对同一对象也有不同的权限,用户可以将其所有的存取权限转授给其他用户。
- 强制存取控制:每一个数据库对象被标以一定的密级,每一个用户也被授予控制一个级别的许可证,对任意一个对象,只有具有合法许可证的用户才可以存取,强制存取控制相对比较严格。
2.3自主存取控制方法
SQL中通过grand 和 revoke语句实现,定义存取权限称为授权
2.4授权:授予与收回
Grand:授权
revoke:收回
1.grand
-- grand 语句基本用法 --
grand <权限(属性)>[,权限...]--select,update,insert
--all privileges--
on<对象类型>,<对象名>[,<对象类型>,<对象名>...]
to<用户>[,<用户>...]
[with grant option]; --将某种权限再授予其他用户--
2.revoke
-- revoke语句基本用法 --
revoke <权限(属性)>[,权限...]
on<对象类型>,<对象名>[,<对象类型>,<对象名>...]
from<用户>[,<用户>...];
3.创建数据库的权限
创建数据库的权限由数据库管理员再创建用户时实现
create user <user name>[with][DBA|resource|connect];
DBA:超级用户,可以创建新用户,创建模式,创建基本表和视图,拥有对所有数据库对象的存取权限,可以将权限分给一般用户
resource:可以创建基本表和视图,成为创建对象的属主,不能创建模式,不能创建新用户。数据库对象的属主可以使用grand语句把该对象上的存取权限授予其他用户。
connect:如果未指定权限则默认拥有connect权限,不能创建用户,不能创建模式,不能茶u你感觉爱你基本表,只能登陆数据库,根据从管理员处获得的授权情况可以对数据库对象权限进行权限范围内操作。
2.5数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。
1.角色的创建
create role<角色名>
2.给角色授权
grant <权限>
on <对象类型>对象名
to <角色>
3.将一个角色授予其他的角色或用户
grant <角色1>
to <角色2>
[with admin option] --授予者是角色创建者,或拥有在这个角色上的admin option
4.角色权限的收回
revoke <权限>
on <对象类型><对象名>
from<角色>
2.6强制存取方法
数据库管理系统所管理的全部实体被分为 主体 和 客体 两大类。对于主体和客体,数据库管理系统为他们每个实例指派一个敏感度标记
TS 绝密 S 机密 C可信 P公开
主体:系统中的活动实体,包括数据库管理系统所管理的实际用户
与用户的各种进程
客体:系统中的被动实体,受主体控制,包括文件,基本表,索引,视图等。
- 仅当主体的许可证级别大于或等于客体的 密级时,该主体才能读取相应的客体
- 仅当主体的许可证级别小于或等于客体的密级时,主体才能写(insert)相应的客体。但不能(update,select)
3.视图机制
为不同的用户定义不容的视图,把数据对象限制再一定的范围内。通过视图机制把数据对无权存取的用户隐藏起来。
简而言之:将视图的的权限授予用户
create view CS_Student /*建立视图CS_Student*/
as
select *
from student
where Sdept='cs'
grant select 王平老师只能检索计算机系学生的信息
on CS_Student
to 王平;
grant all privileges 系主任具有检索和增删改计算机系学生信息的所有权限
on CS_Student
to 张明;
4.审计
审计功能把用户对数据库的所有操作自动记录放入审计日志,审计原可以利用审计日志健康数据库的各种行为,重现导致数据库现有状况的事件,找出非法存取数据的任。
4.1审计事件
- 服务器事件:数据库启动,停止
- 系统权限
- 语句事件:Sql语句
- 模式对象事件:表,视图
5.数据加密
明文->暗文
- 存储加密
- 传输加密
- 确认通信双方端点的可靠性
- 协商加密算法和密匙
- 可信数据传输
6.其他安全性保护
- 推理控制
- 隐蔽信道
- 数据隐私