概述
数据库的不安全因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中重要或敏感的数据被泄漏
- 安全环境的脆弱性
数据库的安全性控制
用户身份鉴别
- 静态口令鉴别
- 动态口令鉴别
- 生物特征鉴别
- 智能卡鉴别
存取控制
- 存取控制机制主要包括定义用户权限和合法权限检查两部分
- C2数据库管理系统支持自主存取控制
- B1级的数据库管理系统支持强制存取控制
自主存取控制方法
- 用户权限的组成要素:数据库对象、操作类型。
- 定义存储权限称为授权
- 在关系数据库系统中,存取控制的对象包括:数据本身、数据库模式。
权限的授予、收回
- 数据的操作权限
- grant
grant select # ,.. on table student #,.. to u1,u2; [with grant option]#可以把拥有的权限授予其他用户,不予许循环授权
- revoke
revoke insert on table SC from public# public:所有用户 [cascade|restrict]; # 默认为cascade,即级联删除
- grant
- 数据库模式的权限
- 只有系统的超级用户才有权创建一个新的数据库用户。
- 数据库用户的权限类型:
- CONNECT:只能登陆数据库 #默认
- RESOURCE:创建基本表和视图
- DBA:创建用户、模式、基本表、视图等
create user username [with][dba|resource|connect];
数据库角色
- 数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。
- 权限 --> 角色 --> 用户
- 角色的创建
create role <name>;
- 给角色授权
grant select,insert .. #权限 on table t1.. #对象类型 对象名 to role1,role2.. #角色
- 将一个角色授予其他的角色或用户
grant role1,role2.. to role 3,role4.. [with admin option]#能够把获得的权限授予其他用户
- 角色权限的回收
revoke delete on table student to R1
视图机制
- 给不同的用户定义不同的视图,把数据对象限制在一定范围内,实现部分数据的隐藏。
- 间接地实现支持存储谓词的用户权限定义。
审计
- 审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。
- audit | noaudit :设置/取消审计功能
#对sc表结构 或 修改sc表数据的操作进行审计 audit alter update on sc;