《数据库系统概论》学习笔记——第四章 数据库安全
教材为数据库系统概论第五版(王珊)
这一章简单记一下那几条sql的用法和两种存取控制和审计(今年期末考了)吧,不知道有啥好考的
数据库安全性
- 问题的提出
- 数据库的一大特点是数据可以共享
- 数据共享必然带来数据库的安全性问题
- 数据库系统中的数据共享不能是无条件的共享
例: 军事秘密、国家机密、新产品实验数据、
市场需求分析、市场营销策略、销售计划、
客户档案、医疗档案、银行储蓄数据
4.1 计算机安全性概述
4.1.1 计算机系统的三类安全性问题
计算机系统安全性
为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
三类计算机系统安全性问题
- 技术安全类
- 管理安全类
- 政策法律类
4.1.2 安全标准简介
- TCSEC标准
- CC标准
TCSEC/TDI标准的基本内容
TCSEC/TDI,从四个方面来描述安全性级别划分的指标
- 安全策略
- 责任
- 保证
- 文档
TCSEC/TDI安全级别划分
B2以上的系统
- 还处于理论研究阶段
- 应用多限于一些特殊的部门,如军队等
- 美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准
CC(通用准则)
- 提出国际公认的表述信息技术安全性的结构
- 把信息产品的安全要求分为
- 安全功能要求
- 安全保证要求
4.2 数据库安全性控制
非法使用数据库的情况
- 编写合法程序绕过DBMS及其授权机制
- 直接或编写应用程序执行非授权操作
- 通过多次合法查询数据库从中推导出一些保密数据
计算机系统中,安全措施是一级一级层层设置
数据库安全性控制的常用方法
- 用户标识和鉴定
- 存取控制
- 视图
- 审计
- 密码存储
4.2.1 用户标识与鉴别
用户标识与鉴别(Identification & Authentication)
系统提供的最外层安全保护措施
4.2.2 存取控制
存取控制机制组成
- 定义用户权限
- 合法权限检查
用户权限定义和合法权检查机制一起组成了DBMS的安全子系统
常用存取控制方法
- 自主存取控制(Discretionary Access Control ,简称DAC)
- C2级
- 灵活
- 强制存取控制(Mandatory Access Control,简称 MAC)
- B1级
- 严格
4.2.3 自主存取控制方法
通过 SQL 的 GRANT 语句和 REVOKE 语句实现
用户权限组成
- 数据对象
- 操作类型
定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权
4.2.4 授权与回收
GRANT
语句的一般格式:
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户
WITH GRANT OPTION子句:
- 指定:可以再授予
- 没有指定:不能传播
不允许循环授权
例:把查询Student表权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
例:把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILIGES
ON TABLE Student, Course
TO U2, U3;
例:把对表SC的查询权限授予所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
例:把查询Student表和修改学生学号的权限授给用户U4
GRANT UPDATE(Sno), SELECT
ON TABLE Student
TO U4;
对属性列的授权时必须明确指出相应属性列名
例:把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;
REVOKE
- 授予的权限可以由DBA或其他授权者用REVOKE语句收回
语句的一般格式为:
REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;
例:把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;
例:收回所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
例:把用户U5对SC表的INSERT权限收回
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE ;
将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回,因为U5授权给了U6,U6授权给了U7。
如果U6和U7从别处获得了对SC表的INSERT权限,则这里使用CASCADE只收回U5的权限。
小结:SQL灵活的授权机制
- DBA:拥有所有对象的所有权限
- 不同的权限授予不同的用户
- 用户:拥有自己建立的对象的全部的操作权限
- GRANT:授予其他用户
- 被授权的用户
- “继续授权”许可:再授予
- 所有授予出去的权力在必要时又都可用REVOKE语句收回
三、创建数据库模式的权限
CREATE USER语句格式
CREATE USER <username>
[WITH][DBA | RESOURCE | CONNECT]
4.2.5 数据库角色
数据库角色:被命名的一组与数据库操作相关的权限
- 角色是权限的集合
- 可以为一组具有相同权限的用户创建一个角色
- 简化授权的过程
一、角色的创建
CREATE ROLE <角色名>
二、给角色授权
GRANT <权限>[,<权限>]… ON <对象类型>对象名 TO <角色>[,<角色>]…
三、将一个角色授予其他的角色或用户
GRANT <角色1>[,<角色2>]…
TO <角色3>[,<用户1>]…
[WITH ADMIN OPTION]
四、角色权限的收回
REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…
通过角色来实现将一组权限授予一个用户。
步骤如下:
首先创建一个角色 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 王平;
角色的权限修改
GRANT DELETE
ON TABLE Student
TO R1
4.2.6 强制存取控制方法
- 可能存在数据的“无意泄露”
- 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记
- 解决:对系统控制下的所有主客体实施强制存取控制策略
强制存取控制(MAC,Mandatory access control )
- 保证更高程度的安全性
- 用户不能直接感知或进行控制
- 适用于对数据有严格而固定密级分类的部门
- 军事部门
- 政府部门
-
主体是系统中的活动实体
- DBMS所管理的实际用户
- 代表用户的各进程
-
客体是系统中的被动实体,是受主体操纵的
-
文件
-
基表
-
索引
-
视图
敏感度标记(Label)
- 绝密(Top Secret)
- 机密(Secret)
- 可信(Confidential)
- 公开(Public)
主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)
强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体
修正规则
- 主体的许可证级别 <=客体的密级 -> 主体能写客体
规则的共同点
- 禁止了拥有高许可证级别的主体更新低密级的数据对象
4.3 视图机制
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护
- 主要功能是提供数据独立性,无法完全满足要求
例:建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明
先建立计算机系学生的视图CS_Student
CREATE VIEW CS_StudentAS SELECT *FROM StudentWHERE Sdept='CS';
在视图上进一步定义存取权限
GRANT SELECT
ON CS_Student
TO 王平 ;
GRANT ALL PRIVILIGES
ON CS_Student
TO 张明;
4.4 审计(Audit)
什么是审计
- 审计日志(Audit Log)
- 将用户对数据库的所有操作记录在上面
- DBA利用审计日志
- 找出非法存取数据的人、时间和内容
- C2以上安全级别的DBMS必须具有
审计分为
- 用户级审计
- 针对自己创建的数据库表或视图进行审计
- 记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作
- 系统级审计
- DBA设置
- 监测成功或失败的登录要求
- 监测GRANT和REVOKE操作以及其他数据库级权限下的操作
AUDIT语句:设置审计功能
NOAUDIT语句:取消审计功能
例:对修改SC表结构或修改SC表数据的操作进行审计
AUDIT ALTER,UPDATE ON SC;
例:取消对SC表的一切审计
NOAUDIT ALTER,UPDATE
ON SC;
4.5 数据加密
数据加密
- 防止数据库中数据在存储和传输中失密的有效手段
加密方法
- 替换方法
- 置换方法
- 混合方法
4.6 统计数据库安全性
统计数据库
- 允许用户查询聚集类型的信息(如合计、平均值等)
- 不允许查询单个记录信息
统计数据库中特殊的安全性问题
- 隐蔽的信息通道
- 能从合法的查询中推导出不合法的信息
规则1:任何查询至少要涉及N(N足够大)个以上的记录
规则2:任意两个查询的相交数据项不能超过M个
规则3:任一用户的查询次数不能超过1+(N-2)/M
数据库安全机制的设计目标:试图破坏安全的人所花费的代价 >> 得到的利益
ps:这一章看不懂在讲啥,考试也没重点考,简单了解就好
相关文章:

《数据库系统概论》学习笔记——第四章 数据库安全
教材为数据库系统概论第五版(王珊) 这一章简单记一下那几条sql的用法和两种存取控制和审计(今年期末考了)吧,不知道有啥好考的 数据库安全性 问题的提出 数据库的一大特点是数据可以共享数据共享必然带来数据库的安全…...

山洪径流过程模拟及洪水危险性评价
目录 1.洪水淹没危险性评价方法及技术讲解 2.GIS水文信息提取与分析(基于ArcGIS软件) 3.洪水淹没模拟水文分析:洪峰流量估算 4.洪水淹没模拟水力学分析:Hec-RAS实例操作 GIS水文分析(ArcHydro、Spatial Anlysist等模块)是流域…...

LeetCode HOT100 (23、32、33)
目录 23、合并K个升序链表 32、最长有效括号 33、搜索旋转排序数组 23、合并K个升序链表 思路:采用顺序合并的方法,用一个变量 ans 来维护以及合并的链表,第 i 次循i 个链表和 ans合并,答案保存到 ans中。 代码: …...
电力监控仪表主要分类
电力监控仪表是电工仪表行业的一个新兴、细分行业,类别属于安装式数字仪表,从模拟指针式仪表和电量变送器演变而来。随着计算机技术的发展,电力监控仪表已应用到电力系统的发、输、变、配、用的各个环节,实现对电网电参量的测量、…...
山野户外定位依赖GPS或者卫星电话就能完成么?
每当有驴友失联的新闻报道,很多的户外“老鸟”和“菜鸟”都在讲:为什么不带卫星电话,不带GPS……云云!提一个小小的问题:如果你拿着卫星电话、GPS或者其他即时通信的其他设备,你就能准定位你所处的位置么&a…...
SAP 应收应付重组配置
应收应付重组是为了使资产负债表真实的反映资产及负债的真实情况,需要对应收、应付账款的余额时行实际调整。即将“应收账款”的贷方余额和“应付账款”的借方余额分别调整至“预收账款”与“预付账款”账户中。 应收应付重组SAP系统是按照公司代码、客户/供应商、…...

算法练习(八)计数质数(素数)
1、问题描述: 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 2、示例如下: 3、代码如下: 第一种:比较暴力的算法 class Solution {public int countPrimes(int n) {int count1;if(n<2) return 0;for(in…...

用反射模拟IOC模拟getBean
IOC就是spring的核心思想之一:控制反转。这里不再赘述,看我的文章即可了解:spring基础思想IOC其次就是java的反射,反射机制是spring的重要实现核心,今天我看spring的三级缓存解决循坏引用的问题时,发现一个…...

【Ap AutoSAR入门与实战开发02】-【Ap_s2s模块01】: s2s的背景
总目录链接==>> AutoSAR入门和实战系列总目录 文章目录 1 s2s的背景?2 AUTOSAR 方法应支持车辆的无缝开发2.1 面向服务的ECU的解读2.2 面向信号的ECU的解读2.3 通过网关ECU实现转换1 s2s的背景? Cp AutoSAR基于传统的can,lin,flexray总线的通信,一般是面向信号设…...

C语言数据结构(3)----无头单向非循环链表
目录 1. 链表的概念及结构 2. 链表的分类 3. 无头单向非循环链表的实现(下面称为单链表) 3.1 SListNode* BuySListNode(SLTDateType x) 的实现 3.2 void SListPrint(SListNode* plist) 的实现 3.3 void SListPushBack(SListNode** pplist, SLTDateType x) 的实现 3.4 voi…...

Android 实现菜单拖拽排序
效果图简介本文主角是ItemTouchHelper。它是RecyclerView对于item交互处理的一个「辅助类」,主要用于拖拽以及滑动处理。以接口实现的方式,达到配置简单、逻辑解耦、职责分明的效果,并且支持所有的布局方式。功能拆解功能实现4.1、实现接口自…...
通过window.open打开新的页面并修改样式添加内容
const img new Image(); img.src res; //res是图片的路径地址 const newWin window.open(, _blank); newWin.document.write(img.outerHTML); // newWin.document.body.style.background #000; newWin.document.body.style.textAlign center; newWin.document.body.oncl…...
Java中 Synchronized 的用法
《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized. synchronized是Java中的关键字,…...

Rust语言的基本介绍
rust缘起和目标 rust的英文是锈菌,是一种真菌,这种真菌的生命力非常顽强,其 在生命周期内可以产生多达5种孢子类型,这5种生命形态还可以相互转 化。“Rust”也有“铁锈”的意思,暗合“裸金属”之意,代表了R…...

新冠小阳人症状记录
原想挺过春节后再养,发现事与愿违。生理期期间抵抗力下降,所以在生理期第二天就有些症状了。可能是生理期前一天出去采购食物染上,也可能是合租夫妻染上。anyway,记录下自己的症状与相应有效的偏方: 第一天:…...

SQL零基础入门学习(十四)
上篇:SQL零基础入门学习(十三) SQL NULL 值 NULL 值代表遗漏的未知数据。 默认地,表的列可以存放 NULL 值。 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该…...

Excel工作表不能移动或复制?看看是不是这两个原因
Excel工作表不能移动或复制?今天来看看如何解决。 大家都知道,Excel表格分为工作簿和工作表,工作簿就是整个Excel文件;工作簿里面,也就是Excel表可以有多个工作表。 而各个工作表之间是可以相互移动或复制的…...

利用递归实现括号匹配
案例引入以下则是各个字符串经过括号处理之后的结果:12((21))(12-->12(21)1232((((2121)212(21)-->32(2121)212(21)ABDF((SA)SA)SA(SA)SA(((-->ABDF((SA)SA)SA(SA)SA算法思路:这个问题的解决方法就是将字符按顺序逐一加入到新的string容器store…...
14.线程数量怎么制定?
什么是CPU 密集型任务和耗时 IO 型任务 ? CPU 密集型任务 CPU 密集型任务,比如加密、解密、压缩、计算等一系列需要大量耗费 CPU 资源的任务。 耗时 IO 型任务 数据库、文件的读写,网络通信等任务,这种任务的特点是并不会特别消耗…...
C++中STL标准模板库学习记录
文章目录:1.vector1.1 遍历方式1.2 构造函数1.3 容量大小问题1.4 插入和删除1.5 存取值1.6 交换两个vectot的元素1.7 预定义存储空间2.string3. deque4. stack4.1 常用函数5. queue5.1 特点5.2 方法6. list6.1 优点6.2 缺点6.3 构造函数6.4 交换6.5 大小6.6 插入和删…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...