数据库系统概论——安全性

一、安全性概述

1.1不安全因素

非授权用户对数据库的恶意存取和破坏
数据库中重要或敏感的数据被泄露
安全环境的脆弱性

1.2安全标准简介

1.2.1 TCSEC/TDI标准

miKFCF.png
各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力

1.2.2 CC标准

miKhPU.png

1.3安全性控制

计算机系统中,安全措施是一级一级层层设置
miKHq1.png
数据库管理系统安全性控制模型
miMCqI.png
数据库系统常用的安全性控制方法包括:用户标识与鉴别,存取控制,视图,审计,数据加密

二、存取控制

组成

  • 定义用户权限,并将用户权限登记到数据字典中
  1. 用户对某一数据对象的操作权力称为权限
  2. DBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则或授权规则
  • 合法权限检查
  1. 用户发出存取数据库操作请求
  2. DBMS查找数据字典,进行合法权限检查

2.1自主存取控制

通过 SQL 的 grant语句和 revoke语句实现
用户权限组成

  • 数据对象
  • 操作类型

定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权
关系数据库系统中的存取权限
miMXmn.png

2.1.1权限的授予和回收

1、授予 grant

grant <权限列表> on <对象名> to <用户/角色列表>
/*
权限列表可以是 all privileges,或者如下
    select:查询
    delete:删除元组
    insert [(<属性列>,...,<属性列>)]:插入
    update [(<属性列>,...,<属性列>)]:修改
    references [(<属性列>,...,<属性列>)]:赋予用户创建关系时定义外码的能力
*/

2、回收 revoke

grant <权限列表> on <对象名> to <用户/角色列表>
{cascade | retrict}

2.1.2创建数据库模式的权限

--数据库管理员在创建用户时实现
create user <username>
[with][dba | resource | connect];

create user语句格式说明

  1. 只有系统的超级用户才有权创建一个新的数据库用户
  2. 新创建的数据库用户有三种权限:connect、resource和DBA
  3. 如没有指定创建的新用户的权限,默认该用户拥有connect权限

miQSYT.png

2.1.3数据库角色

定义:被命名的一组与数据库操作相关的权限

  • 角色是权限的集合
  • 可以为一组具有相同权限的用户创建一个角色
  • 简化授权的过程
--创建角色
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 王平;

2.2强制存取控制方法

在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
主体是系统中的活动实体

  • 数据库管理系统所管理的实际用户
  • 代表用户的各进程

客体是系统中的被动实体,受主体操纵

  • 文件、基本表、索引、视图

敏感度标记
对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记
敏感度标记分成若干级别

  • 绝密
  • 机密
  • 秘密
  • 公开

主体的敏感度标记称为许可证级别
客体的敏感度标记称为密级
强制存取控制规则

  1. 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
  2. 仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体

实现强制存取控制时要首先实现自主存取控制

  • 原因:较高安全性级别提供的安全保护要包含较低级别的所有保护

自主存取控制与强制存取控制共同构成数据库管理系统的安全机制

三、其他安全措施

3.1视图机制

首先定义视图,屏蔽一部分需要对某些用户保密的数据;然后在视图上定义存取权限,将对使徒的访问权授予这些用户,而不允许他们直接访问定义视图的关系

3.2审计技术

审计技术是一种监视措施,它跟踪数据库中的访问活动,检测可能的不合法行为
审计启用一个专门的审计日志,自动记录所有用户对数据库的更新(插入、删除、修改)
审计日志记录部分

  1. 操作类型(插入、删除、修改)
  2. 操作终端标识与操作者标识
  3. 操作日期和时间
  4. 操作涉及的数据(关系、元组、属性等)
  5. 数据的前像和后像

3.3数据加密

按照一定的加密算法,将原始数据(明文)变换成不可直接识别的格式(密文)
加密模式不应依赖于算法的保密,而是依赖于算法参数,即密钥

猜你喜欢

转载自www.cnblogs.com/xxwang1018/p/11546734.html
今日推荐