第5章数据库安全课件教学文稿

上传人:yulij****0329 文档编号:139224519 上传时间:2020-07-20 格式:PPT 页数:336 大小:656KB
返回 下载 相关 举报
第5章数据库安全课件教学文稿_第1页
第1页 / 共336页
第5章数据库安全课件教学文稿_第2页
第2页 / 共336页
第5章数据库安全课件教学文稿_第3页
第3页 / 共336页
第5章数据库安全课件教学文稿_第4页
第4页 / 共336页
第5章数据库安全课件教学文稿_第5页
第5页 / 共336页
点击查看更多>>
资源描述

《第5章数据库安全课件教学文稿》由会员分享,可在线阅读,更多相关《第5章数据库安全课件教学文稿(336页珍藏版)》请在金锄头文库上搜索。

1、第5章 数据库安全,5.1 安全性 5.2 完整性 5.3 并发控制 5.4 恢复 5.5 数据库复制与数据库镜像,第5章 数据库安全,5.1 安全性 5.2 完整性 5.3 并发控制 5.4 恢复 5.5 数据库复制与数据库镜像,5.1 安全性,问题的提出 数据库的一大特点是数据可以共享 但数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享 例:军事秘密、 国家机密、 新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、 医疗档案、 银行储蓄数据,安全性(续),数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问

2、允许他存取的数据 数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一,5.1 安全性,5.1.1 安全性控制的一般方法 5.1.2 Oracle数据库的安全性措施,5.1 安全性,5.1.1 安全性控制的一般方法 5.1.2 Oracle数据库的安全性措施,5.1.1 安全性控制的一般方法,非法使用数据库的情况 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据; 直接或编写应用程序执行非授权操作;,数据库安全性控制概述(续),通过多次合法查询数据库从中推导出一些保密数据 例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均

3、工资。用户甲想了解张三的工资,于是他: 首先查询包括张三在内的一组人的平均工资 然后查用自己替换张三后这组人的平均工资 从而推导出张三的工资 破坏安全性的行为可能是无意的,故意的,恶意的。,数据库安全性控制概述(续),方法:,用户标识 和鉴定,存取控制 审计 视图,操作系统 安全保护,密码存储,计算机系统中的安全模型,数据库安全性控制概述(续),数据库安全性控制的常用方法 用户标识和鉴定 存取控制 视图 审计 密码存储,1. 用户标识与鉴定,用户标识与鉴别(Identification 这样就可以省略十几条GRANT语句。,2.数据库对象的权限,ORACLE可以授权的数据库对象 基本表 视图

4、序列 同义词 存储过程 函数,数据库对象的权限(续),基本表的安全性级别 表级 行级 列级,数据库对象的权限(续),表级安全性 表的创建者或DBA可以把对表的权限授予其他用户,数据库对象的权限(续),表级权限 ALTER: 修改表定义 DELETE:删除表记录 INDEX: 在表上建索引 INSERT: 向表中插入数据记录 SELECT:查找表中记录 UPDATE:修改表中的数据 ALL: 上述所有权限,数据库对象的权限(续),表级授权使用GRANTREVOKE语句 例: GRANT SELECT ON SC TO U12;,数据库对象的权限(续),行级安全性 ORACLE行级安全性由视图间接

5、实现,数据库对象的权限(续),例:用户U1只允许用户U12查看自己创建的Student表中有关信息系学生的信息,则首先创建视图信息系学生视图S_IS: CREATE VIEW S_IS AS SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student WHERE Sdept=IS; 然后将关于该视图的SELECT权限授予U12用户: GRANT SELECT ON S_IS TO U12;,数据库对象的权限(续),列级安全性 实现方法 由视图间接实现 直接在基本表上定义,数据库对象的权限(续),列级安全性(续) 借助视图实现列级安全性 CREATE VIEW S

6、_V AS SELECT Sno,Sname FROM Student; GRANT SELECT ON S_V TO U12;,数据库对象的权限(续),列级安全性(续) 直接在基本表上定义列级安全性 例:GRANT UPDATE(Sno,Cno) ON SC TO U12;,数据库对象的权限(续),三级对象的层次结构 表、行、列三级对象自上而下构成一个层次结构 上一级对象的权限制约下一级对象的权限 例:当一个用户拥有了对某个表的UPDATE权 限,即相当于在表的所有列了都拥有了 UPDATE 权限。,数据库对象的权限(续),ORACLE对数据库对象的权限采用分散控制方式 允许具有WITH G

7、RANT OPTION的用户把相应权限或其子集传递授予其他用户 ORACLE不允许循环授权,即授权者不能把权限再授予其授权者或祖先 U1 U2 U3 U4 ,ORACLE的授权与检查机制(续),ORACLE的权限检查机制 ORACLE把所有权限信息记录在数据字典中 当用户进行数据库操作时,ORACLE首先根据数据字典中的权限信息,检查操作的合法性。 在ORACLE中,安全性检查是任何数据库操作的第一步。,三、ORACLE的审计技术,审计分类 审计分类 用户级审计 系统级审计,三、ORACLE的审计技术,审计分类(续) 用户级审计 设置者 任何ORACLE用户 审计对象 用户针对自己创建的数据库

8、表或视图进行审计 审计内容 所有用户对这些表或视图的一切成功和或不成功的访问要求 所有用户对这些表或视图的各类SQL操作,ORACLE的审计技术(续),审计分类(续) 系统级审计 设置者 DBA 审计对象和内容 成功或失败的登录要求 GRANT和REVOKE操作 其他数据库级权限下的操作,ORACLE的审计技术(续),审计设置 可以自由设置 是否使用审计 对哪些表进行审计 对哪些操作进行审计,ORACLE的审计技术(续),审计设置(续) 设置方法 AUDIT:设置审计功能 例: AUDIT ALTER,UPDATE ON SC; NOAUDIT:取消审计功能 例: NOAUDIT ALL ON

9、 SC;,ORACLE的审计技术(续),与审计功能有关的数据字典表 SYS.TABLES:审计设置 SYS.AUDIT_TRAIL:审计内容,四、用户定义的安全性措施,用数据库级触发器定义用户级安全性 例:规定只能在工作时间内更新Student表 可以定义如下触发器:,用户定义的安全性措施(续),CREATE OR REPLACE TRIGGER secure_student BEFORE INSERT OR UPDATE OR DELETE ON Student BEGIN IF (TO_CHAR(sysdate,DY) IN (SAT,SUN) OR (TO_NUMBER(sysdate,

10、HH24) NOT BETWEEN 8 AND 17) THEN RAISE_APPLICATION_ERROR(-20506, You may only change data during normal business hours.) END IF; END;,用户定义的安全性措施(续),触发器一经定义后,将存放在数据字典中 用户每次对Student表执行INSERT、UPDATE或DELETE操作时都会自动触发该触发器,由系统检查当时的系统时间,如果是周六或周日,或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。,用户定义的安全性措施(续),利用触发器进一步细化审计规

11、则,使审计操作的粒度更细,第5章 数据库安全,5.1 安全性 5.2 完整性 5.3 并发控制 5.4 恢复 5.5 数据库复制与数据库镜像,5.2 完整性,什么是数据库的完整性 数据库的完整性是指数据的正确性和相容性,防止不合语义的数据进入数据库。 例: 学生的年龄必须是整数,取值范围为14-29; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系; 数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。,完整性(续),完整性控制机制 1.完整性约束条件定义机制 2.完整性检查机制 3.违约反应,完整性(续),完整性

12、控制机制(续) 1.完整性约束条件定义机制 完整性约束条件是数据模型的一个重要组成部分,它约束了数据库中数据的语义。 DBMS应提供手段让用户根据现实世界的语义定义数据库的完整性约束条件,并把它们作为模式的一部分存入数据库中。,完整性(续),完整性控制机制(续) 2.完整性检查机制 检查用户发出的操作请求是否违背了完整性约束条件。,完整性(续),完整性控制机制(续) 3.违约反应 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。,5.2 完整性,5.2.1 完整性约束条件 5.2.2 完整性控制 5.2.3 Oracle的完整性,5.2 完整性,5.2.1

13、 完整性约束条件 5.2.2 完整性控制 5.2.3 Oracle的完整性,5.2.1 完整性约束条件,整个完整性控制都是围绕完整性约束条件进行的,从这个角度说,完整性约束条件是完整性控制机制的核心。,完整性约束条件(续),完整性约束条件作用的对象 对象 列 对属性的取值类型、范围、精度等的约束条件 元组 对元组中各个属性列间的联系的约束 关系 对若干元组间、关系集合上以及关系之间的联系的约束,完整性约束条件(续),完整性约束条件作用的对象(续) 对象的状态 静态 对静态对象的约束是反映数据库状态合理性的约束 这是最重要的一类完整性约束 动态 对动态对象的约束是反映数据库状态变迁的约束,完整性

14、约束条件(续),完整性约束条件分类 六类完整性约束条件 静态列级约束 静态元组约束 静态关系约束 动态列级约束 动态元组约束 动态关系约束,完整性约束条件(续),对象状态 动态列级约束 动态元组约束 动态关系约束 动态 静态列级约束 静态元组约束 静态关系约束 静态 列 元组 关系 对象粒度,完整性约束条件(续),1. 静态列级约束 静态列级约束是对一个列的取值域的说明,这是最常见最简单同时也最容易实现的一类完整性约束,完整性约束条件(续),五类静态列级约束 1) 对数据类型的约束,包括数据的类型、长度、单位、精度等 例:规定学生姓名的数据类型应为字符型,长度为8。 2) 对数据格式的约束 例

15、:规定学号的格式为前两位表示入学年份,后四位为顺序编号。出生日期的格式为YY.MM.DD。,完整性约束条件(续),3) 对取值范围或取值集合的约束 例:规定成绩的取值范围为0-100,年龄的取值范围为14-29,性别的取值集合为男,女。 4) 对空值的约束 空值表示未定义或未知的值,它与零值和空格不同。有的列允许空值,有的则不允许。例如规定成绩可以为空值。 5) 其他约束 例:关于列的排序说明,组合列等。,完整性约束条件(续),2. 静态元组约束 静态元组约束就是规定组成一个元组的各个列之间的约束关系。 例:订货关系中包含发货量、订货量等列, 发货量不得超过订货量 教师关系中包含职称、工资等列

16、, 教授的工资不得低于700元 静态元组约束只局限在单个元组上,完整性约束条件(续),3. 静态关系约束 在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束 常见静态关系约束 1) 实体完整性约束 2) 参照完整性约束 3) 函数依赖约束 4) 统计约束,完整性约束条件(续),函数依赖约束 大部分函数依赖约束都是隐含在关系模式结构中的,特别是规范化程度较高的关系模式(例如3NF或BCNF),都由模式来保持函数依赖。 但是在实际应用中,为了不使信息过于分离,常常不过分地追求规范化。,完整性约束条件(续),函数依赖约束(续) 这样在关系的字段间就可以存在一些函数依赖需要显式地表示出来。 例:在学生课程教师关系S

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号