当前位置: 首页 > news >正文

《数据库系统概论》学习笔记——第四章 数据库安全

教材为数据库系统概论第五版(王珊)
这一章简单记一下那几条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 <角色>[,<角色>]…

通过角色来实现将一组权限授予一个用户。
步骤如下:

  1. 首先创建一个角色 R1

    CREATE  ROLE  R1;
    
  2. 然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限

    GRANT SELECTUPDATEINSERT 
    ON TABLE Student 
    TO R1;
    
  3. 将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限

     GRANT  R1 TO 王平,张明,赵玲;
    
  4. 可以一次性通过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 ALTERUPDATE  ON  SC;

例:取消对SC表的一切审计

NOAUDIT  ALTERUPDATE  
ON  SC;

4.5 数据加密

数据加密

  • 防止数据库中数据在存储和传输中失密的有效手段

加密方法

  • 替换方法
  • 置换方法
  • 混合方法

4.6 统计数据库安全性

统计数据库

  • 允许用户查询聚集类型的信息(如合计、平均值等)
  • 不允许查询单个记录信息

统计数据库中特殊的安全性问题

  • 隐蔽的信息通道
  • 能从合法的查询中推导出不合法的信息

规则1:任何查询至少要涉及N(N足够大)个以上的记录

规则2:任意两个查询的相交数据项不能超过M个

规则3:任一用户的查询次数不能超过1+(N-2)/M

数据库安全机制的设计目标:试图破坏安全的人所花费的代价 >> 得到的利益

ps:这一章看不懂在讲啥,考试也没重点考,简单了解就好

相关文章:

《数据库系统概论》学习笔记——第四章 数据库安全

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

山洪径流过程模拟及洪水危险性评价

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

LeetCode HOT100 (23、32、33)

目录 23、合并K个升序链表 32、最长有效括号 33、搜索旋转排序数组 23、合并K个升序链表 思路&#xff1a;采用顺序合并的方法&#xff0c;用一个变量 ans 来维护以及合并的链表&#xff0c;第 i 次循i 个链表和 ans合并&#xff0c;答案保存到 ans中。 代码&#xff1a; …...

电力监控仪表主要分类

电力监控仪表是电工仪表行业的一个新兴、细分行业&#xff0c;类别属于安装式数字仪表&#xff0c;从模拟指针式仪表和电量变送器演变而来。随着计算机技术的发展&#xff0c;电力监控仪表已应用到电力系统的发、输、变、配、用的各个环节&#xff0c;实现对电网电参量的测量、…...

山野户外定位依赖GPS或者卫星电话就能完成么?

每当有驴友失联的新闻报道&#xff0c;很多的户外“老鸟”和“菜鸟”都在讲&#xff1a;为什么不带卫星电话&#xff0c;不带GPS……云云&#xff01;提一个小小的问题&#xff1a;如果你拿着卫星电话、GPS或者其他即时通信的其他设备&#xff0c;你就能准定位你所处的位置么&a…...

SAP 应收应付重组配置

应收应付重组是为了使资产负债表真实的反映资产及负债的真实情况&#xff0c;需要对应收、应付账款的余额时行实际调整。即将“应收账款”的贷方余额和“应付账款”的借方余额分别调整至“预收账款”与“预付账款”账户中。 应收应付重组SAP系统是按照公司代码、客户/供应商、…...

算法练习(八)计数质数(素数)

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

用反射模拟IOC模拟getBean

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

【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交互处理的一个「辅助类」&#xff0c;主要用于拖拽以及滑动处理。以接口实现的方式&#xff0c;达到配置简单、逻辑解耦、职责分明的效果&#xff0c;并且支持所有的布局方式。功能拆解功能实现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)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现&#xff0c;这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized. synchronized是Java中的关键字&#xff0c…...

Rust语言的基本介绍

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

新冠小阳人症状记录

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

SQL零基础入门学习(十四)

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

Excel工作表不能移动或复制?看看是不是这两个原因

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

利用递归实现括号匹配

案例引入以下则是各个字符串经过括号处理之后的结果&#xff1a;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算法思路&#xff1a;这个问题的解决方法就是将字符按顺序逐一加入到新的string容器store…...

14.线程数量怎么制定?

什么是CPU 密集型任务和耗时 IO 型任务 &#xff1f; CPU 密集型任务 CPU 密集型任务&#xff0c;比如加密、解密、压缩、计算等一系列需要大量耗费 CPU 资源的任务。 耗时 IO 型任务 数据库、文件的读写&#xff0c;网络通信等任务&#xff0c;这种任务的特点是并不会特别消耗…...

C++中STL标准模板库学习记录

文章目录&#xff1a;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 插入和删…...

《数据库系统概论》学习笔记——第六章 关系数据理论

教材为数据库系统概论第五版&#xff08;王珊&#xff09; 这一章重点在于各种范式的概念和将低级范式转为高级范式。一定要看多值依赖和4NF&#xff08;因为这个概念很绕又烦&#xff0c;但是期中期末都考了&#xff09;。最后计算题就是一定要会&#xff1a;算闭包&#xff0…...

Odoo | Webserivce | 5分钟学会【JSONRPC】接口开发

文章目录Odoo - JsonRPC1. Odoo内方法结构&#xff08;接收端&#xff09;2. POST接口请求结构&#xff08;发送端&#xff09;3. 实例测试Odoo - JsonRPC 1. Odoo内方法结构&#xff08;接收端&#xff09; # -*- coding: utf-8 -*- import odoo import logging import trac…...

搜广推 NeuralCF - 改进协同过滤+矩阵分解的思想

😄 NeuralCF:2017新加坡国立大学提出。【后文简称NCF】 😄 PNN:2016年上海交通大学提出。 文章目录 NeuralCF动机原理general NCFNCF终极版(GMF+MLP的结合)缺点优点ReferenceNeuralCF 动机 前面学了MF,可知MF在用户-物品评分矩阵的基础上做矩阵分解(用户矩阵Q和物品…...

dbever连接kerberos认证的hive

文章目录一、本地安装kerberos客户端二、本地kerberos客户端登录三、dbever连接hive一、本地安装kerberos客户端 下载地址&#xff1a;https://web.mit.edu/kerberos/dist/index.html 安装&#xff1a;下一步或者自定义安装即可 安装后会自动生成配置文件&#xff1a;C:\Pro…...

pom依赖产生的各种问题

文章目录问题一(org.apache.ibatis.session.Configuration)解决方法问题二(ERROR StatusLogger No log4j2)解决方法问题三(com.google.common.util.concurrent)解决方法问题四(start bean documentationPluginsBootstrapper)解决方法问题五(Unable to infer base url. )解决办法…...

RPC编程:RPC框架设计目标

一&#xff1a;前导知识 Http是超文本传输协议&#xff0c;跨平台性非常好。Http可以传输文本&#xff0c;更多的时候传输的是文本&#xff0c;我们也是可以传输二进制的&#xff0c;我们基于Http进行下载的时候&#xff0c;就是走的Http协议。 Tcp协议&#xff0c;处理的时候…...

RBAC 权限模型介绍

RBAC 权限&#xff1a; 一、关系&#xff1a; 这基于角色的访问控制的结构就叫RBAC结构。 二、RBAC 重要对象&#xff1a; 用户&#xff08;Employee&#xff09;&#xff1a;角色施加的主体&#xff1b;用户通过拥有某个或多个角色以得到对应的权限。角色&#xff08;Role&…...

西电面向对象程序设计核心考点汇总(期末真题)

文章目录前言一、往年真题与答案1.1 改错题1.2 读程题1.3 面向对象程序设计二、易错知识点2.1 构造函数2.2 静态成员变量和静态成员函数2.3 权限2.4 继承2.5 多态总结前言 主要针对西安电子科技大学《面向对象程序设计》的核心考点进行汇总&#xff0c;包含总共8章的核心简答。…...

判断一个用字符串表达的数字是否可以被整除

一.问题引出 当一个数字很大的时候,我们常用字符串进行表达,(超过了int和long等数据类型可以存储的最大范围),但是这个时候我们该如何判断他是否可以被另一个数整除呢? 这个时候我们不妨这样来考虑问题,每次将前边求模之后的数保存下来,然后乘以10和这一位的数字进行相加的操…...

这是一款值得开发人员认真研究的软件,数据库优化,应用服务器安全优化...

1.查询数据库死锁相关信息2.查看数据库的链接情况3.当前实例上的所有用户4.创建数据库独立密码5.查看数据库使用的端口号6.当前数据库设置的最大连接数7.当前数据库最大的理论可连接数8.当前数据库实例的连接数9.当前数据库连接数10.当前数据库连接超时设置11.当前sqlserver 超…...

个人网站毕业设计/点金推广优化公司

第二十四讲 SpringBoot下载文件 文章目录第二十四讲 SpringBoot下载文件1.pom.xml 引入依赖2. 前端&#xff1a;fileUpload.html3. 后端&#xff1a;DownloadController.java1.pom.xml 引入依赖 <dependency><groupId>org.springframework.boot</groupId>&l…...

wordpress 幻灯数据库/电商网

在写 Python 代码的时候有时候会遇到变量需要叫 type、class 的情况。但 type 是一个 Python 的 ? built-in function&#xff0c;class 是一个 keyword。 有一种解决方法是在变量后加单下划线得到 type_&#xff0c;代码里也已经有地方在用&#xff0c;符合 PEP8 的规范。参考…...

响应式网站建设过时吗/营销策划书格式及范文

上周五新的iPhone在全世界的苹果专卖店上架了&#xff0c;不甘寂寞的华为也没闲着。就在周五当天&#xff0c;华为的“橙汁”卡车开上了伦敦的街头&#xff0c;停在了苹果专卖店的店外&#xff0c;给排队购买新iPhone的果粉们免费发放橙汁。车上标注了“Apple Free” &#xff…...

wordpress 装修公司主题/优化网站关键词

2019年全网天猫京东苏宁等平台“618大促”还有两三个月&#xff0c;小编倾情呈上新鲜出炉的2019年“618大促”#红包攻略#!说到红包&#xff0c;它在营销引流上可以为企业拉取新用户、巩固老用户关系以及提升用户的活跃度等等。不少企业公众号正在借助这个电商宝SCRM互动平台的红…...

政府门户网站建设中标/成人零基础学电脑培训班

通过 Groovy 进行循环 同大多数脚本语言一样&#xff0c;Groovy 经常被宣传为生产力更高 的 Java 语言替代品。 更好、更短的循环 下面这种方法可以更好地感受 Groovy 缺乏类型的好处&#xff1a;首先&#xff0c;用与创建 HelloWorld 相同的方式创建一个 Groovy 类&#xf…...

网站后台管理要求/china东莞seo

2017-03-03 更新于末尾 1、Windows7 — Ubuntu 远程桌面连接中 Tab 键不能补全的解决办法 2、xrdp远程连接ubuntu无法使用原机的中文输入法 2017-02-22 更新于末尾 1、真机完全安装ubuntu时的问题解决 2、远程连接真实ubuntu操作系统的方法&#xff08;远程桌面和SecureCRT&…...