目录
一、安全性概述
1.1不安全因素
1.2安全标准简介
1.2.1 TCSEC/TDI标准
1.2.2 CC标准
1.3安全性控制
二、存取控制
2.1自主存取控制
2.1.1权限的授予和回收
2.1.2创建数据库模式的权限
2.1.3数据库角色
2.2强制存取控制方法
三、其他安全措施
视图机制
审计技术
数据加密
非授权用户对数据库的恶意存取和破坏
数据库中重要或敏感的数据被泄露
安全环境的脆弱性
各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力
评估保证级 |
定 义 |
TCSEC安全级别(近似相当) |
EAL1 |
功能测试 |
|
EAL2 |
结构测试 |
C1 |
EAL3 |
系统地测试和检查 |
C2 |
EAL4 |
系统地设计、测试和复查 |
B1 |
EAL5 |
半形式化设计和测试 |
B2 |
EAL6 |
半形式化验证的设计和测试 |
B3 |
EAL7 |
形式化验证的设计和测试 |
A1 |
计算机系统中,安全措施是一级一级层层设置
数据库管理系统安全性控制模型
数据库系统常用的安全性控制方法包括:用户标识与鉴别,存取控制,视图,审计,数据加密
组成
通过 SQL 的 grant语句和 revoke语句实现
用户权限组成
定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权
关系数据库系统中的存取权限
存取控制的类型类型 |
对象 |
操作类型 |
数据库模式 |
模式 |
create schema |
基本表 |
create table,alter table |
|
视图 |
create view |
|
索引 |
create index |
|
数据 |
基本表和视图 |
select,insert,update,delete,references,all privileges |
属性列 |
select,insert,update, references,all privileges |
1、授予 grant
grant <权限列表> on <对象名> to <用户/角色列表>
/*
权限列表可以是 all privileges,或者如下
select:查询
delete:删除元组
insert [(<属性列>,...,<属性列>)]:插入
update [(<属性列>,...,<属性列>)]:修改
references [(<属性列>,...,<属性列>)]:赋予用户创建关系时定义外码的能力
*/
2、回收 revoke
grant <权限列表> on <对象名> to <用户/角色列表>
{cascade | retrict}
--数据库管理员在创建用户时实现
create user
[with][dba | resource | connect];
create user语句格式说明
拥有的权限 |
可否执行的操作 |
|||
create user |
create schema |
create table |
登录数据库 ,执行数据查询和操纵 |
|
dba |
可以 |
可以 |
可以 |
可以 |
resource |
不可以 |
不可以 |
不可以 |
不可以 |
connect |
不可以 |
不可以 |
不可以 |
可以,但必须拥有相应权限 |
定义:被命名的一组与数据库操作相关的权限
--创建角色
create role <角色名>
--角色授权
grant <权限列表> on <对象名> to <角色名>
--使用角色授权
grant <角色列表> to <用户/角色列表>
--收回授予角色的权限
revoke <权限列表> on <对象名> from <角色名>
--收回角色
revoke <角色列表> from <用户/角色列表> {cascade | restrict}
--通过角色来实现将一组权限授予一个用户。步骤如下:
--首先创建一个角色 R1
create role R1;
--然后使用grant语句,使角色R1拥有Student表的 select、update、insert权限
grant select,update,insert
on table Student
to R1;
--将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限
grant R1
to 王平,张明,赵玲;
--可以一次性通过R1来回收王平的这3个权限
revoke R1
from 王平;
在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
主体是系统中的活动实体
客体是系统中的被动实体,受主体操纵
敏感度标记
对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记
敏感度标记分成若干级别
- 绝密
- 机密
- 秘密
- 公开
主体的敏感度标记称为许可证级别
客体的敏感度标记称为密级
强制存取控制规则
实现强制存取控制时要首先实现自主存取控制
自主存取控制与强制存取控制共同构成数据库管理系统的安全机制
首先定义视图,屏蔽一部分需要对某些用户保密的数据;然后在视图上定义存取权限,将对使徒的访问权授予这些用户,而不允许他们直接访问定义视图的关系
审计技术是一种监视措施,它跟踪数据库中的访问活动,检测可能的不合法行为
审计启用一个专门的审计日志,自动记录所有用户对数据库的更新(插入、删除、修改)
审计日志记录部分
按照一定的加密算法,将原始数据(明文)变换成不可直接识别的格式(密文)
加密模式不应依赖于算法的保密,而是依赖于算法参数,即密钥