数据库系统概论——第四章 数据库安全性

数据库系统概论——第四章 数据库安全性

在这里插入图片描述

数据库安全性:保护数据库以防止不合法使用所造成的数据泄露更改破坏

系统安全保护措施是否有效是数据库系统主要的性能指标之一。

一、数据库安全安全性概论
1. 数据库的不安全因素
(1)非授权用户对数据库的恶意存取和破坏,dbms 提供的安全措施主要包括:用户身份鉴别、存取控制和视图等技术。
(2)数据库中重要或敏感的数据被泄露,dbms系统主要技术有强制存取控制、数据加密存储和加密传输等。
(3)安全环境的脆弱性:数据库的安全性与计算机系统的安全性紧密联系,要建立一套可信计算机系统的概念和标准。

2. 安全标准简介

在这里插入图片描述

在这里插入图片描述

二、数据库安全性控制

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

计算机系统的安全模型:

系统根据用户表示鉴定用户身份,合法用户才准许进入计算机系统。
数据库管理系统还要进行存取控制,只允许用户执行合法操作。
操作系统有自己的保护措施。
数据以密码形式存储在数据库中。

数据库安全性控制的常用方法(重点)
(1)用户标识和鉴定
(2)存取控制
(3)视图
(4)审计
(5)数据加密

  1. 用户身份鉴别(identitication & Authentication)
    系统提供的最外层的安全措施
    用户识别:由用户名和用户标识号组成(用户标识号在系统整个生命周期内唯一)
    用户身份鉴别的方法
    (1)静态口令鉴别:静态口令一般由用户自己设定,这些口令是静态不变的
    (2)动态口令鉴别:口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法。
    (3)生物特征鉴别:通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
    (4)智能卡鉴别:智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能

  2. 存取控制
    (1)DBMS的存取子系统控制子系统组成
    ①定义用户权限,并将用户权限登记到数据字典中。
    (权限:用户对某一数据对象的操作权利)
    ②合法权限检查:用户发出存取数据库操作请求
    DBMS查找数据字典,进行合法权限检查
    (2)常用的存取控制方法
    ①自主存取控制方式(DAC)
    C2级、用户对不同的数据对象有不同的存取权限、不同的用户对同一对象也有不同的权限、用户还可将其拥有的存取权限转授给其他用户。
    通过sql的grant和revoke语句实现。
    用户权限组成:操作对象,操作类型
    授权:定义存取权限

    1)授权grant


(1) 将对指定操作对象的指定操作权限授予指定的用户。 grant的发出者:DBA,数据库的创建者(owner),拥有该权限的用户
(2)grant的接受者:一个或多个具体的用户,public(即全体用户) with grant
(3)option子句:指定:可以再授予,没有指定:不可以再授予。
(4)不允许循环授权

eg:把查询student表授权给用户U1
//创造一个用户

//授权

eg:把把对Student表和Course表的全部权限授予用户U2和U3
grant all priviliges

eg:把对表SC的查询权限授予所有用户
to public

eg:把查询Student表和修改学生学号的权限授给用户user1。

eg:把对表SC的INSERT权限授予user1用户,并允许他再将此权限授予其他用户。

2)回收(revoke)

授予的权限可以由DBA或其他授予用户用revoke语句收回
在这里插入图片描述

eg:把用户user1修改学生学号的权限收回

在【例4.10】中U6与U7对SC表的INSERT的权限由U5授予
在这里插入图片描述
3)创建数据库模式的权限

(1) DBA在创建用户时实现。
(2) create user 语句格式:
create user 《username》
【with】【DBA|resource|connect】
(3) create user 不是sql标准,在各个系统中是不同的。


在这里插入图片描述

4)数据库角色:被命名的一组与数据库操作相关的权限。

角色是权限的集合
可以为一组具有相同权限的用户创建一个角色
简化授权过程
创建角色:

给角色授权:

将一个角色授予其他角色或用户:

一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限
收回角色权限:

一、自主存取控制的缺点:
可能存在数据的“无意泄露”
原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记
解决:对系统控制下的所有主客体实施强制存取控制策略
二、强制存取控制(MAC):
保证更高程度的安全性
用户不能直接感知或进行控制
适用于对数据有严格而固定密级分类的部门
 军事部门
 政府部门

②强制存取控制方式(MAC)
B1级、每一个数据对象被标以一定的密级、每一个用户也被授权某一个级别的许可证、对于任意一个对象,只有具有合法许可证的用户才可以存取。
在强存取控制空,DBMS所管理的全部试题被分为主体和客体两大类:
1)主体:系统中的活动实体,即实际用户或代表用户的各进程
2)客体:系统中的被动实体,受主体操纵,即文件、基本表、索引、视图。
敏感度标记(Label)
对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)
敏感度标记分成若干级别
1)绝密(Top Secret,TS)
2)机密(Secret,S)
3)可信(Confidential,C)
4)公开(Public,P)
TS>=S>=C>=P
许可证级别:主体的敏感度标记
密级:客体的敏感度标记

强制存取控制规则:
1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能取相应的客体
2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能相应的客体

强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。
实现强制存取控制时要首先实现自主存取控制
原因:较高安全性级别提供的安全保护要包含较低级别的所有保护
自主存取控制强制存取控制共同构成数据库管理系统的安全机制

3)
3. 视图机制
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护
间接地实现支持存取谓词的用户权限定义。

  1. 审计(audit)
    什么是审计?
    (1)启用一个专用的审计日志,将用户对数据库的所有操作记录在上面
    (2)审计员利用审计日志,监控数据库中的各种行为,找到非法存取数据的人、时间和内容。
    (3)C2以上的安全级别的DBMS必须具有审计功能。
    审计功能的可选性?
    (1)审计很费时间和空间
    (2)DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能
    (3)审计功能主要用于安全性要求较高的部门
    审计事件?
    (1)服务器事件:审计数据库服务器发生的事件
    (2)系统权限:对系统拥有的结构或模式对象进行操作的审计,要求该操作的权限是通过系统权限获得的
    (3)语句事件:对SQL语句,如DDL、DML、DQL及DCL语句的审计
    (4)模式对象事件:对特定模式对象上进行的SELECT或DML操作的审计
    审计功能?
    (1)基本功能:提供多种审计查阅方式提供多种审计查阅方式
    (2)多套审计规则:一般在初始化设定
    (3)提供审计分析和报表功能
    (4)审计日志管理功能
    (5)提供查询设计设置以及设计记录信息的专门视图

    审计类型?
    (1)用户级审计:任何用户可设置的审计,主要是用户针对自己创建的数据库表和视图进行审计
    (2)系统级审计:只能由数据库管理员设置,监测成功或失败的登录要求、监测授权和收回操作以及其他数据库级权限下的操作
    在这里插入图片描述
    mysql8上使用审计:
    (1)查看审计配置情况


    (2)永久开启审计

    (3)临时开启审计
    show variables like ‘general_log’; – 查看日志是否开启
    show variables like ‘log_output’; – 看看日志输出类型 table或file
    show variables like ‘general_log_file’; – 看看日志文件保存位置
    set global general_log_file=‘tmp/general.lg’; – 设置日志文件保存位置
    set global general_log=on; – 开启日志功能
    set global log_output=‘table’; – 设置输出类型为 table
    set global log_output=‘file’; – 设置输出类型为file

5. 数据加密
防止数据库中数据在存储和传输中失密的有效手段
(1)加密的基本思想
根据一定的算法将原始数据—明文(Plain text)变换为不可直接识别的格式­—**密文(Cipher text
(2)加密方法
1)存储加密
①透明存储加密:内核级加密保护方式,对用户完全透明将数据在写到磁盘时对数据进行加密,授权用户读取数据时再对其进行解密数据库的应用程序不需要做任何修改,只需在创建表语句中说明需加密的字段即可。
内核级加密方法: 性能较好,安全完备性较高
②非透明存储加密,通过多个加密函数实现

2)传输加密
①链路加密:在链路层进行加密,传输信息由报头和报文两部分组成,报文和报头均加密。
②端到端加密:在发送端加密,接收端解密;只加密报文不加密报头;所需密码设备数量相对较少,容易被非法监听者发现并从中获取敏感信息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 其他安全性保护
    (1)推理控制:
    处理强制存取控制未解决的问题,避免用户利用能够访问的数据推知更高密级的数据,常用方法:基于函数依赖的推理控制、基于敏感关联的推理控制。
    (2)隐蔽信道:
    处理强制存取控制未解决的问题
    (3)数据隐私保护:
    描述个人控制其不愿他人知道或他人不便知道的个人数据的能力;范围很广:数据收集、数据存储、数据处理和数据发布等各个阶段
发布了34 篇原创文章 · 获赞 4 · 访问量 1330

猜你喜欢

转载自blog.csdn.net/zj20165149/article/details/104018700