第七章 数据库的安全性与完整性 7.1 基本概念 7.2 数据库安全控制 7.3 数据库的完整性控制 7.4 触发器 本章小结.

Slides:



Advertisements
Similar presentations
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Advertisements

第6章: 完整性与安全性 域约束 参照完整性 断言 触发器 安全性 授权 SQL中的授权.
An Introduction to Database System
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
1. SQL概述 2。DDL 3。DML DCL(第四部分安全性讲) 4。嵌入式使用 5。PL/SQL
An Introduction to Database System
Principles and Applications of the Database
第六章 数据库和ADO.NET 褚龙现 软件学院.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
数据库安全性.
Database Principles & Applications
Oracle数据库 Oracle 子程序.
資料庫管理 資管二 賴柏融.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
An Introduction to Database System
第9章 数据库安全性 概述 安全性控制 统计数据库安全性 Oracle数据安全性措施.
An Introduction to Database System
An Introduction to Database System An Introduction to Database System
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
作业4讲评.
第五章 数据库完整性 5.1 实体的完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句
Hadoop I/O By ShiChaojie.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
An Introduction to Database System
An Introduction to Database System An Introduction to Database System
An Introduction to Database System An Introduction to Database System
第 7 章 建立資料表與 資料庫圖表.
第8章 数据库的安全和完整性约束 数据库的破坏一般来自: 1.系统故障; 2.并发所引起的数据不一致; 3.人为的破坏;
課程名稱:資料庫系統 授課老師:李春雄 博士
管理信息结构SMI.
SQL Injection.
SQL SERVER 一些经典语句 1.
Windows网络操作系统管理 ——Windows Server 2008 R2.
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
Online job scheduling in Distributed Machine Learning Clusters
Ch4.SQL Server 2005資料庫組成員元件介紹
第四章 数据库安全性 4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
ORACLE 第九讲 触发器.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
An Introduction to Database System
顺序表的删除.
SQL 范引娣.
第10章 触发器的创建和使用 10.1 触发器概述 10.2 创建触发器 10.3 修改触发器 10.4 删除触发器.
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
An Introduction to Database System An Introduction to Database System
实体描述呈现方法的研究 实验评估 2019/5/1.
Web安全基础教程
第 7 章 建立資料表與資料庫圖表.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
数据集的抽取式摘要 程龚, 徐丹云.
Visual Basic程序设计 第13章 访问数据库
1.非线性规划模型 2.非线性规划的Matlab形式
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第六讲 SQL语言之数据定义 第三讲 SQL Server 2000 数据库技术.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
VB与Access数据库的连接.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第七章 数据库的安全性与完整性 7.1 基本概念 7.2 数据库安全控制 7.3 数据库的完整性控制 7.4 触发器 本章小结

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 数据库的完整性是指数据的正确性、有效性和相容性。 第七章 数据库的安全性与完整性 7.1 基本概念 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 数据库的完整性是指数据的正确性、有效性和相容性。 能适应网络环境下安全要求级别的数据库为安全数据库或可信数据库。 可信计算基是指为实现数据库安全的所有实施策略和机制的集合。 数据安全性标准:P. 208 表7.1

7.2 数据库安全性控制 安全措施应该一级一级层层设置。 计算机系统的安全模型 P.207 图7-1 用户标识 和鉴别 DB 数据密 码存储 7.2 数据库安全性控制 安全措施应该一级一级层层设置。 计算机系统的安全模型 P.207 图7-1 用户标识 和鉴别 DB 数据密 码存储 OS 安全保护 DBMS 存取控制

7.2 数据库安全性控制 数据库安全控制方法 一、用户标识与鉴别 1. 利用用户自身具备的各种自然特征标识自己和提供鉴别的依据。 7.2 数据库安全性控制 数据库安全控制方法 一、用户标识与鉴别 1. 利用用户自身具备的各种自然特征标识自己和提供鉴别的依据。 2. 利用用户持有的证件。 3. 利用口令。 口令保密可采用的一些方法: (1)扩大口令集和口令长度。 (2)规定口令的生效时间,定期或不定期地更换口令。 (3)设置多层口令系统。 (4)设置动态口令。

7.2 数据库安全性控制 二 、 存取控制 1. 存取控制方法 DBMS的安全子系统主要包括两部分: 7.2 数据库安全性控制 二 、 存取控制 1. 存取控制方法 DBMS的安全子系统主要包括两部分: 定义用户权限,并将用户权限登记到数据字典中。 合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 用户权限组成:数据对象和操作类型。 在数据库系统中,定义存取权限称为授权。 (1) 自主存取控制(DAC) 用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。

7.2 数据库安全性控制 (2)强制存取控制(MAC) 7.2 数据库安全性控制 (2)强制存取控制(MAC) 在强制存取控制(MAC)方法中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。 对于任意一个对象,只有具有合法许可证的用户才可以 存取。强制存取控制因此相对比较严格。 MAC适用于对数据有严格而固定密级分类的部门。 主体是指数据库中数据访问者、(用户、DBA)进程、线程等,是系统中的活动实体。 客体是指数据库中数据及其载体(表、视图、索引、存储过程等),是系统中的被动实体。

7.2 数据库安全性控制 对于主体和客体,DBMS为它们每个实例(值)指派一 个敏感度标记(Label)。 7.2 数据库安全性控制 对于主体和客体,DBMS为它们每个实例(值)指派一 个敏感度标记(Label)。 敏感度标记被分成若干级别,例如绝密、机密、可信、公开等。 主体的敏感度标记称为许可证级别。 客体的敏感度标记称为密级。 主体子集 客体子集 访 问

7.2 数据库安全性控制 MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。 7.2 数据库安全性控制 MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。 当某一主体以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则: ① 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; ② 仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。 这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏。

7.2 数据库安全性控制 2.存取控制的实现 (1) 用户分类和权限 7.2 数据库安全性控制 2.存取控制的实现 (1) 用户分类和权限 用户:系统用户(DBA)、数据对象属主(owner)、一般用户、公共用户(public)。 权限:包括数据访问权限(读、插入、修改、删除等)和数据库模式修改权限(索引、资源、修改、撤消等)两类。

7.2 数据库安全性控制 1、授权 GRANT语句向用户授予操作权限 一般格式为: 7.2 数据库安全性控制 1、授权 GRANT语句向用户授予操作权限 一般格式为: GRANT<权限>[,<权限>]… [ON<对象类型><对象名>] TO<用户>[,<用户>]... [WITH GRANT OPTION] 语义为: 将对指定操作对象的指定操作权限授予指定的用户。 可将此权限转授 对不同类型的操作对象有不同的操作权限。 如 P130 表3.4所示。

7.2 数据库安全性控制 例:把查询表SC和修改其学号的权限授给用户 U2和U4。 GRANT INSERT GRANT SELECT , 7.2 数据库安全性控制 例:把查询表SC和修改其学号的权限授给用户 U2和U4。 GRANT SELECT , UPDATE(Sno) ON TABLE SC TO U2,U4; 例:把对表SC的INSERT权限授给用户U5,并允许将此权限再授予其他用户。 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION; U5还可以将此权限授予U6: TO U6; 全体。 PUBLIC; U6能不能再 传播此权限?

7.2 数据库安全性控制 例: DBA把在数据库 DB1中建立表的权限授予用户U1。 GRANT CREATETAB 7.2 数据库安全性控制 例: DBA把在数据库 DB1中建立表的权限授予用户U1。 GRANT CREATETAB ON DATABASE DB1 TO U1; UA回收 U1隐含权限? 改 U1 U2 改 改 U3 UA 查 GRANT语句可以: 一次向一个用户授权; 一次向多个用户授权; 一次传播多个同类对象的权限; 一次可以完成对基本表、视图和属性列这些不同对象的授权。 2、收回权限 级联: (但系统只收回直接或间接从某处获得的权限) UB

7.2 数据库安全性控制 三、视图机制 通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 7.2 数据库安全性控制 三、视图机制 通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 四.数据加密 以密码形式存储和传输数据。 五、审计 审计是对选定的用户动作的监控和记录,以监测可能的不合法行为。 审计常用于: (1)审查可疑的活动。 (2)监视和收集关于数据库活动的数据。

7.2 数据库安全性控制 六. 统计数据库的安全性 统计数据库:只允许用户查询聚集类型信息,不允许查询单个记录信息的数据库。 7.2 数据库安全性控制 六. 统计数据库的安全性 统计数据库:只允许用户查询聚集类型信息,不允许查询单个记录信息的数据库。 在统计DB中存在着特殊的安全问题:即可能有隐蔽的信息通道,使合法的查询导出不合法的信息。 如:P.348 例1 P.348 例2 方法: 限定查询的记录量(查询至少涉及N个以上的记录) 限定查询的次数(规定任意两个查询相交的数据项不能超过M个)

7.3 数据库的完整性控制 一、数据库的完整性 数据库的完整性:是指数据的正确性、有效性和相容性。 说明:完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。 数据库完整性约束条件:加在数据库数据之上的语义约束条件。 完整性检查:而DBMS中检查数据是否满足完整性条件的机制。

(1)定义功能:提供定义完整性约束条件的机制。 (2)检查功能:检查用户发出的操作请求是否违背了完整性约束条件。 7.3 数据库的完整性控制 DBMS的完整性控制机制应具有三个方面的功能: (1)定义功能:提供定义完整性约束条件的机制。 (2)检查功能:检查用户发出的操作请求是否违背了完整性约束条件。 (3)防范功能:如果发现用户的操作请求使数据违背了完整性约束条件,采取一定的动作来保证数据的完整性。

7.3 数据库的完整性控制 一条完整性规则可以用一个五元组 (D,O,A,C,P)来表示: (1)D(Data) 约束作用的数据对象; 7.3 数据库的完整性控制 完整性控制的规则: 一条完整性规则可以用一个五元组 (D,O,A,C,P)来表示: (1)D(Data) 约束作用的数据对象; (2)O(Operation) 触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查; (3)A(Assertion) 数据对象必须满足的断言或语义约束,这是规则的主体; (4)C(Condition) 选择A作用的数据对象值的谓词; (5)P(Procedure) 违反完整性规则时触发的过程。

7.3 数据库的完整性控制 如: 在“教授工资不得低于1000元”的约束中: D 约束作用的对象为工资Sal属性 O 插入或修改职工元组时 7.3 数据库的完整性控制 如: 在“教授工资不得低于1000元”的约束中: D 约束作用的对象为工资Sal属性 O 插入或修改职工元组时 A Sal不能小于1000 C 职称='教授' (A仅作用于职称='教授'的记录) P 拒绝执行该操作

(1)立即执行约束:检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查。 7.3 数据库的完整性控制 完整性的语义约束和检查: (1)立即执行约束:检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查。 (2)延迟执行约束:完整性检查延迟到整个事务执行结束后再进行,检查正确方可提交。 (3)在事务的某些特定检查点检查。 (4)在一个维护操作请求之后且执行之前检查。 (5)在DBA或审计员发出检查请求时。

7.3 数据库的完整性控制 二、完整性约束条件 关系、元组、列 7.3 数据库的完整性控制 二、完整性约束条件 作用的对象: 关系、元组、列 静态约束:是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束。 动态约束:是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。

7.3 数据库的完整性控制 常见的静态关系约束有: (1)实体完整性约束。 (2)参照完整性约束。 (3)函数依赖约束。 (4)统计约束。 7.3 数据库的完整性控制 1、静态列级约束 是对一个列的取值域的说明: 对数据类型、格式的约束; 对取值范围或取值集合的约束;对空值的约束;其他约束,(例如关于列的排序说明,组合列等)。 2、静态元组约束 是规定元组的各个列之间的约束关系。 3、静态关系约束 在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。 常见的静态关系约束有: (1)实体完整性约束。 (2)参照完整性约束。 (3)函数依赖约束。 (4)统计约束。 4、动态列级约束 是修改列定义或列值时应满足的约束条件,包括下面两方面: (1)修改列定义时的约束 (2)修改列值时的约束

7.3 数据库的完整性控制 5、动态元组约束 是指修改元组的值时元组中各个字段间需要满足某种约束条件。 6、动态关系约束 7.3 数据库的完整性控制 5、动态元组约束 是指修改元组的值时元组中各个字段间需要满足某种约束条件。 6、动态关系约束 是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。

完整性约束条件分类 状态 粒度 列 级 元组级 关系级 静态列级约束: 列定义 ·类型 ·格式 ·值域 ·空值 静态元组约束: 状态 粒度 列 级 元组级 关系级 静态列级约束: 列定义 ·类型 ·格式 ·值域 ·空值 静态元组约束: 元组的列之间应满足的约束关系 静态关系约束: 实体完整性约束 参照完整性约束 函数依赖约束 统计约束 静 态 动 态 动态关系约束: 关系新旧状态 间应满足的的 约束条件 动态元组约束: 元组新旧值 之间应满足 约束条件 动态列级约束: 改变列定义 或列值

7.3 数据库的完整性控制 三、SQL中的完整性约束 1、基本表的约束 (1)主码约束 PRIMARY KEY (<列名表>) 7.3 数据库的完整性控制 三、SQL中的完整性约束 1、基本表的约束 (1)主码约束 PRIMARY KEY (<列名表>) (2)外码约束 FOREIGN KEY (<列名表>) REFERENCE <目标表>[(<列名表>)] [ON DELETE <参照动作>] [ON UPDATE <参照动作>] <参照动作>:NO ACTION、CASCADE、RESTRICT、SET NULL、SET DEFAULT

7.3 数据库的完整性控制 实现参照完整性要考虑的问题: ① 在被参照关系中删除元组 这时主要有三种不同的策略: 级联删除(CASCADE) 7.3 数据库的完整性控制 实现参照完整性要考虑的问题: ① 在被参照关系中删除元组 这时主要有三种不同的策略: 级联删除(CASCADE) 受限删除(RESTRICT) 置空值删除(SET NULL) ② 修改被参照关系中主码 若允许修改主码,主要有三种不同的策略: 级联修改(CASCADE) 受限修改(RESTRICT) 置空值修改(SET NULL)

7.3 数据库的完整性控制 (3)检查约束 CHECK (<条件表达式>) 2、域约束 7.3 数据库的完整性控制 (3)检查约束 CHECK (<条件表达式>) 2、域约束 CREATE DOMAIN <域名> <域类型> CHECK (<条件>) 例:8.13 3、断言 注意:CHECK子句只对定义它的表起作用,对其它表不起作用。 例:8.11 所以:当约束条件涉及多个表、使用聚集操作时应使用断言。 CREATE ASSERTION <断言名> CHECK (<条件>) 例 8.15、8.16

7.4 触发器 触发器:当对相关表执行INSERT、UPDATE、DELETE语句时被隐式执行的过程。 触发器与存储过程的区别: 7.4 触发器 触发器:当对相关表执行INSERT、UPDATE、DELETE语句时被隐式执行的过程。 触发器与存储过程的区别: 存储过程由用户或应用显示执行;触发器是为一激发语句发出时由DBMS隐式地触发。 触发器的组成: (1)触发事件 (2)触发条件 (3)触发器动作 触发器的作用:强制实现更复杂的完整性约束。 触发器的类型: (1) AFTER (2) BEFORE 例:8.18

7.4 触发器 例:规定修改SC表的grade值时,修改后的值不能低于修改前的值。 CREATE TRIGGER Trig_grade 7.4 触发器 例:规定修改SC表的grade值时,修改后的值不能低于修改前的值。 CREATE TRIGGER Trig_grade AFTER UPDATE OF grade ON SC REFERENCING OLD AS oldg,NEW AS newg FOR EACH ROW WHEN (oldg.grade>newg.grade) UPDATE SC SET grade=oldg.grade WHERE cno=newg.cno; 触发事件 触发条件 触发器动作

第七章 数据库安全性与完整性 小结 练习P371 : 自主存取控制(DAC) 强制存取控制(MAC) 10题③⑤⑥ 12题②④ 数据库安全控制技术 用户标识与鉴别 存取控制 审计 视图 密码存储 触发器机制 DBMS的完整性控制的功能: 定义功能、 检查功能、 防范功能 DBMS的完整性控制策略: 利用主码实现实体完整性 利用外码实现参照完整性 利用一般约束实现用户定义的完整性 利用SQL断言、触发器实现特殊要求的完整性 自主存取控制(DAC) 强制存取控制(MAC) 练习P371 : 10题③⑤⑥ 12题②④