4.数据库安全性

文章详细阐述了数据库安全性的概念,包括用户身份鉴别、存取控制(自主存取控制和强制存取控制)、授权、审计等关键机制,并讨论了信息安全标准的发展,如CC评估保证级。此外,还介绍了如何通过GRANT和REVOKE语句管理用户权限,并提到了强制存取控制中的主体、客体和敏感度标记的概念。

学习过程参考(后续章节同)
【公开课】数据库系统概论(王珊老师)(完结)

《数据库系统概论》思维导图

【专栏必读】数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解

数据库系统概论课后习题答案(第五版 王珊、萨师煊)

第4章 数据库安全性 | 数据库知识点整理

梳理

在这里插入图片描述

名词解释

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

  • 用户身份鉴别:每个用户在系统中都有一个用户标识。每个用户标识由用户名(user name)和用户标识号(UID)组成。系统内部记录着所有合法用户的标识,每次用户进入系统时,系统会核对用户的身份,只有通过鉴定后才提供相关数据库管理系统的权限
  • 存取控制:存取控制的目的就是确保只授权给有资格的用户访问数据库的权限,其余人等无法接近数据
  • 自主存取控制(DAC):用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户,因此自主存取控制非常灵活
    (Discretionary Access Control 其中Discretionary自行决定的;酌情行事的;)
  • 强制存取控制(MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取,因此强制存取控制因此相对比较严格
    (Mandatory Access Control 其中Mandatory是mandate v.命令的变体)

  • 授权:用户权限由数据库对象和操作类型这两个要素组成。定义一个用户的存取权限就是定义这个用户可以在哪些数据对象上进行哪些类型的操作。所谓授权就是指定义存取权限
  • 数据库角色:是被命名的一组与数据库操作相关的权限,也即角色是权限的集合。在创建用户时如果为其赋予某种角色,那么用户就自动拥有了该数据库角色所拥有的权限,从而省去了繁琐的授权语句

  • 审计:审计功能把用户对数据库的所有操作自动记录下来放入审计日志(audit log)中。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。还可以通过对审计日志分析,对潜在的威胁提前采取措施加以防范

课后题

1.数据库安全性

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

2.对数据库安全性产生威胁的因素

(1)非授权用户对数据库的恶意存取和破坏。
一些黑客和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。
(2)数据库中重要或敏感的数据被泄露
黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。
(3)安全环境的脆弱性。
数据库的安全性与计算机系统的安全性,包括计算机硬件、操作系统、网略系统等的安全性是紧密联系的。操作系统安全的脆弱,网络协议安全保障的不足等都会造成数据库安全性的破坏。

3.试述信息安全标准的发展历史,试述CC 评估保证级划分的基本内容。

简单地讲,TCSEC是1985年美国国防部颁布的《DoD 可信计算机系统评估准则》。CC通用准则V2.I 版于1999年被ISO采用为国际标准,2001年被我国采用为国家标准。目前CC巳经基本取代了TCSEC, 成为评估信息产品安全性的主要标准。
CC将评估过程划分为功能和保证两部分,评估等级分为EAL1、EAL2、EAL3、EAL4、EAL5、EAL6和EAL7共七个等级。每一级均需评估7个功能类,分别是配置管理、分发和操作、开发过程、指导文献、生命期的技术支持、测试和脆弱性评估。
CC评估保证级(EAL)的划分
评估保证级 定义 TCSEC安全级别(近似相当)
EAL1 功能测试(functionally tested)
EAL2 结构测试(structurally tested) C1
EAL3 系统地测试和检查(methodically tested and checked) C2
EAL4 系统地设计、测试和复查(methodically designed,tested and reviewed) B1
EAL5 半形式化设计和测试(semiformally designed and tested) B2
EAL6 半形式化验证的设计和测试(semiformally verified design and tested) B3
EAL7 形式化验证的设计和测试(formally verified design and tested) A1

4.实现数据库安全性控制的常用方法和技术

(1)用户标识和鉴别
该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
(2)存取控制
通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。
(3)视图机制
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计(监控措施,其他为预防)
建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
(5)数据加密
对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

5.自主存取控制方法和强制~

  • 版本一
    自主存取控制DAC:用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户,因此自主存取控制非常灵活
    强制存取控制MAC:每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取,因此强制存取控制因此相对比较严格
  • 版本二(官方版)
    自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
    强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。

6.GRANT

GRANT <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型> <对象名>]TO <用户>[,<用户>]...
[WITH GRANT OPTION];#用户还可以授权给别人

# 注意不能循环授权,否则找不到权限的起始点从而产生歧义

(1) GRANT ALL PRIVILEGES
ON Student,Class
TO U1
WITH GRANT OPTION ;
(2)GRANT SELECT,UPDATE(家庭住址),DELETE
ON Student
TO U2;
(查看-查询-select)
(数据更新:增加,修改,删除)
(3)GRANT SELECT ON Class TO PUBLIC;
(4)GRANT SELECT,UPDATE ON Student TO R1;

创建角色
CREATE  ROLE  <角色名> ;

给角色授权
 GRANT  <权限>[,<权限>]ON <对象类型>对象名  
 TO <角色>[,<角色>]…
 
将一个角色授予其他的角色或用户
GRANT  <角色1>[,<角色2>]TO  <角色3>[,<用户1>][WITH ADMIN OPTION]

角色权限回收
REVOKE <权限>[,<权限>]ON <对象类型> <对象名>
FROM <角色>[,<角色>]

(5)GRANT R1 TO U1 WITH ADMIN OPTION ;

7.GRANT & REVOKE

REVOKE <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型><对象名>]FROM <用户>[,<用户>]...[CASCADE | RESTRICT];

补充:cascade级联(小瀑布)同时收回该用户传播出去的权限(你包括你的马仔都收回,但是马仔如果还有其他用户处获得的权限则仍然有权限)
即一个用户只能撤销由它自己直接赋予的权限
restrict限制 需要先手动收回传播出去的权限,否则拒绝删除

( 1)用户王明对两个表有SELECT 权力。
GRANT SELECT ON 职工,部门
TO 王明
(可以不写对象类型?不过中文都用了)

( 2 )用户李勇对两个表有INSERT 和DELETE 权力。
GRANT INSERT,DELETE ON 职工,部门
TO 李勇

( 3) 每个职工只对自己的记录有SELECT 权力。
GRANT SELECT ON 职工
WHEN USER()=NAME
TO ALL;
(user()函数获取当前用户)

( 4)用户刘星对职工表有SELECT 权力,对工资字段具有更新权力。
GRANT SELECT,UPDATE(工资) ON 职工
TO 刘星

( 5 )用户张新具有修改这两个表的结构的权力。
GRANT ALTER TABLE ON 职工,部门
TO 张新;
(修改表结构的权限 grant alter table)

( 6 )用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。
GRANT ALL PRIVILIGES ON 职工,部门
TO 周平
WITH GRANT OPTION;

( 7 )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。

CREATE VIEW 部门工资 AS
 SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资)
 FROM 职工,部门
 WHERE 职工.部门号=部门.部门号
 GROUP BY 职工.部门号

GRANT SELECT ON 部门工资 TO 杨兰;

(先建立视图,再把视图的select授予给杨兰)
(!!!有点子综合性在)

8.撤销权限

(1) REVOKE SELECT ON 职工,部门 FROM 王明;
(2) REVOKE INSERT , DELETE ON 职工,部门 FROM 李勇;
(3) REOVKE SELECT ON 职工
WHEN USER ( ) =NAME
FROM ALI ;
(4) REVOKE SELECT , UPDATE ON 职工
FROM 刘星;
(?为啥可以省掉工资字段)
(5) REVOKE ALTER TABLE ON 职工,部门
FROM 张新;
(6) REVOKE ALL PRIVILIGES ON 职工,部门
FROM 周平;
(7) REVOKE SELECT ON 部门工资
FROM 杨兰;
DROP VIEW 部门工资;
(先收回权限,再撤销视图)

9.MAC 机制中主体、客体、敏感度标记的含义

主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。
客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。
对于主体和客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。敏感度标记被分成若干级别,例如绝密(Top Secret )、机密(Secret )、可信( Confidential )、公开(Public)等。主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级。

10.强制存取控制机制是如何确定主体能否存取客体

假设要对关系变量S进行强制存取控制,为简化起见,假设要控制存取的数据单元是元组,则每个元组标以密级,如下表所示(4=绝密,3=机密,2=秘密)
在这里插入图片描述

假设系统的存取规则是
仅当主体的许可证级别大于或等于客体的密级时才能读取相应的客体
仅当主体的许可证级别小于或等于客体的密级时才能写相应的客体
假定用户U1和U2的许可证级别分别为3和2,则根据规则用户U1能读元组S1和S2,可修改元组S2;用户U2只能读元组S1,修改元组S1

11 .什么是数据库的审计功能,为什么要提供审计功能?

审计功能是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
   因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值