数据库笔记整理--基于《数据库系统概论》第五版王珊一书|第四章--数据库安全性知识整理和课后习题答案

该系列的博客都是基于《数据库系统概论》第五版王珊一书

前提:
因为最近要升学的原因,再加上重温数据库部分内容,所以整理一份比较详细且重点的笔记。适合有考研升学需求的人收藏
————————————————
B站里也是有该老师的上课视频:链接放在下面:
https://www.bilibili.com/video/BV1pW411W7Do?from=search&seid=17230259822734539218
(不过年代比较久远,而且画质一般,有兴趣的可以听听)

第四章 :数据库安全性

//了解

    计算机系统安全性问题
    数据库安全性问题
    威胁数据库安全性因素

掌握
TCSEC和CC标准的主要内容
C2级DBMS、B1级DBMS的主要特征DBMS提供的安全措施
用户身份鉴别、自主存取控制、强制存取控制技术
视图技术和审计技术
数据加密存储和加密传输
使用SQL语言中的GRANT语句和REVOKE语句来实现自主存取控制

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

TCSEC/TDI 安全级别划分
安全级别 定义
A1 验证设计(verified design)
B3 安全域(security domains)
B2 结构化保护(structural protection)
B1 标记安全保护(labeled security protection)
C2 受控的存取保护(controlled access protection)
C1 自主安全保护(discretionary security protection)
D 最小保护(minimal protection)

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

数据库的安全性?对起产生威胁的因素有?

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

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

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

  • 用户身份鉴别

    该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。

  • 多层存取控制

    通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如C2级中的自主存取控制(DAC),B1级中的强制存取控制(MAC)

  • 视图机制

    为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护

  • 审计

    建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中, DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等

  • 数据加密

    对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容

数据库自主存取控制方法和强制存取方法

自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。

自主存取控制中自主的含义是:用户可以将自己拥有的存取权限“自主”地授予别人。即用户具有一定的“自主”权。

SQL语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。

SQL中 的自主存取控制是通过GRANT 语句和 REVOKE 语句来实现的。如:
GRANT SELECT, INSERT ON Student TO 王平 WITH GRANT OPTION;
就将Student表的SELECT和INSERT权限授予了用户王平,后面的“WITH GRANT OPTION”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。
REVOKE INSERT ON Student FROM 王平 CASCADE;
就将Student表 的INSERT权限从用户王平处收回,选项 CASCADE 表示,如果用户王平将Student 的 INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。

一句话:GRANT是授权给某个用户,REVOKE是收回,选项 CASCADE 表示,把授权别人,那个人又授权给另外的人的权力也一起收回。

GRANT ALL XXX WITH GRANT OPTION 赋予所有的权力且操作

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

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

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

假设要对关系变量S进行强制存取控制,为简化起见,假设要控制存取的数据单元是元组,则每个元组标以密级,如下表所示(4=绝密,3=机密,2=秘密)
在这里插入图片描述
假设系统的存取规则是
仅当主体的许可证级别大于或等于客体的密级时才能读取相应的客体
仅当主体的许可证级别小于或等于客体的密级时才能写相应的客体

假定用户U1和U2的许可证级别分别为3和2,则根据规则用户U1能读元组S1和S2,可修改元组S2;用户U2只能读元组S1,修改元组S1

数据库的审计功能,审计功能出现的原因?

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

课后答案

  • 强制存取控制策略是TCSEC/TDI【B1】级安全级别的特色
  • SQL的GRANT和REVOKE语句可以用来实现【自主存取控制】
  • 在强制存取控制机制中,当主体的许可证级别等于客体的密级时,主体可以对客体进行【读取、写入】
  • 数据库安全技术包括【用户身份鉴别】【自主存取控制和强制存取控制】【视图】【审计】【数据加密】
  • 在数据加密技术中,原始数据通过某种加密算法变换为不可直接识别的格式,称为【密文】
  • 数据库角色实际上是一组与数据库操作相关的各种【权限】
  • 在对用户授予列INSERT权限时,一定要包含对【主码】的INSERT权限,否则用户的插入会因为空值被拒绝。除了授权的列,其他列的值或者取【空值】,或者为【默认值】
  • 【出入机房登记和加锁】不属于实现数据库系统安全性主要技术和方
  • SQL中的视图提高了数据库系统的【安全性】
  • SQL语言的GRANT和REMOVE语句主要是用来维护数据库的【安全性】
  • 在数据库的安全性控制中,授权的数据对象的【范围越小】,授权子系统就越灵活

猜你喜欢

转载自blog.csdn.net/GTWZeus/article/details/106643398