数据库——安全性

版权声明:原创作品转载需标明作者与地址 https://blog.csdn.net/zjuwxx/article/details/90313122

目录

一、安全性概述

1.1不安全因素

1.2安全标准简介

1.2.1 TCSEC/TDI标准

1.2.2 CC标准

1.3安全性控制

二、存取控制

2.1自主存取控制

2.1.1权限的授予和回收

2.1.2创建数据库模式的权限

扫描二维码关注公众号,回复: 6394428 查看本文章

2.1.3数据库角色

2.2强制存取控制方法

三、其他安全措施

视图机制

审计技术

数据加密


一、安全性概述

1.1不安全因素

非授权用户对数据库的恶意存取和破坏

数据库中重要或敏感的数据被泄露

安全环境的脆弱性

1.2安全标准简介

1.2.1 TCSEC/TDI标准

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

1.2.2 CC标准

评估保证级

定  义

TCSEC安全级别(近似相当)

EAL1

功能测试

 

EAL2

结构测试

C1

EAL3

系统地测试和检查

C2

EAL4

系统地设计、测试和复查

B1

EAL5

半形式化设计和测试

B2

EAL6

半形式化验证的设计和测试

B3

EAL7

形式化验证的设计和测试

A1

1.3安全性控制

计算机系统中,安全措施是一级一级层层设置

数据库管理系统安全性控制模型

数据库系统常用的安全性控制方法包括:用户标识与鉴别,存取控制,视图,审计,数据加密

二、存取控制

组成

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

2.1自主存取控制

通过 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

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权限

拥有的权限

可否执行的操作

create user

create schema

create table

登录数据库 ,执行数据查询和操纵

dba

可以

可以

可以

可以

resource

不可以

不可以

不可以

不可以

connect

不可以

不可以

不可以

可以,但必须拥有相应权限

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. 仅当主体的许可证级别小于或等于客体的密级时,该主体才能相应的客体

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

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

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

三、其他安全措施

视图机制

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

审计技术

审计技术是一种监视措施,它跟踪数据库中的访问活动,检测可能的不合法行为

审计启用一个专门的审计日志,自动记录所有用户对数据库的更新(插入、删除、修改)

审计日志记录部分

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

数据加密

按照一定的加密算法,将原始数据(明文)变换成不可直接识别的格式(密文)

加密模式不应依赖于算法的保密,而是依赖于算法参数,即密钥

猜你喜欢

转载自blog.csdn.net/zjuwxx/article/details/90313122