《数据库系统原理》ppt电子课件教案第五章数据库保护

上传人:aa****6 文档编号:54196327 上传时间:2018-09-09 格式:PPT 页数:107 大小:1.45MB
返回 下载 相关 举报
《数据库系统原理》ppt电子课件教案第五章数据库保护_第1页
第1页 / 共107页
《数据库系统原理》ppt电子课件教案第五章数据库保护_第2页
第2页 / 共107页
《数据库系统原理》ppt电子课件教案第五章数据库保护_第3页
第3页 / 共107页
《数据库系统原理》ppt电子课件教案第五章数据库保护_第4页
第4页 / 共107页
《数据库系统原理》ppt电子课件教案第五章数据库保护_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《《数据库系统原理》ppt电子课件教案第五章数据库保护》由会员分享,可在线阅读,更多相关《《数据库系统原理》ppt电子课件教案第五章数据库保护(107页珍藏版)》请在金锄头文库上搜索。

1、第五章 数据库保护,5.1 数据库安全性,是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。 数据库中的数据可共享 在DBMS控制下,只允许有合法使用权限的用户访问允许他存取的数据 安全性防范对象是非法用户和非法操作,DBMS的实现方法,数据库的安全性控制,在计算机系统中,安全措施是一级一级层层设置。 安全模型:,OS,DBMS,访问控制 (用户标识和鉴别),存取控制,OS安全保护,数据加密存储,安全性控制的一般方法,1. 用户标识和鉴定 是系统提供的最外层安全保护措施 由系统提供一定的方式让用户标识自己的名字或身份,用于判断是否为合法用户。 常用的方法: 1)用一个用户名或者

2、用户标识号来标明用户身份,系统鉴别此用户是否是合法用户。 2)口令(Password)。为进一步核实用户,系统要求用户输入口令 3)系统提供一个随机数,用户根据预先约定好的某一过程或函数进行计算,系统根据计算结果是否正确进一步鉴定用户身份。,2. 存取控制 要保证用户只存取他有权存取的数据 主要通过数据库系统的存取控制机制来实现 存取控制机制主要包括两部分:1) 定义用户存取权限,并将用户权限登记到数据字典中。 对象权限:定义用户可以在哪些数据对象上进行那些类型的操作,可以由DBA授予,也可由数据对象的创建者授予; 系统权限:授予某类数据库用户的权限,由DBA授予; 存取权限有两个要素:数据对

3、象和操作类型 定义用户存取权限授权 授权命令:1. GRANT;2. REVOKE2 )合法权限检查 每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据其存取权限对操作的合法性进行检查。 授权的粒度越细,授权子系统越灵活,提供的安全性越完善,系统开销越大,一个授权表实例,授权的粒度细到列,授权粒度越细,授权子系统越灵活,3. 定义视图 为不同的用户定义不同的视图,把数据对象限制在一定的范围内。 通过视图机制把要保密的数据对无权存取的用户隐藏起来,对数据提供了一定程度的安全保护。 视图机制与授权机制配合使用,CREATE VIEW CS_StudentASSELECT *FROM S

4、tudentWHERE Sdept=CSGRANT SELECTON CS Student TO 王平;,4. 审计 跟踪审查,是一种监视措施 使用的是一个专用文件或数据库 跟踪记录某些保密数据的访问活动 报告有窃密企图的操作 由DBA和数据所有者控制作用 利用审计追踪的信息,找出非法操作者,恢复数据,5. 数据加密 主要对高度机密的数据 是防止数据库中数据在存储和传输中失密 加密的基本思想是根据一定的算法将原始数据变换为不可直接识别的格式,使不知道解密算法的人无法获知数据的内容 对保密性要求很高时,采用数据加密技术,以密码形式存储和传输数据。 如: 利用系统安全措施的漏洞非法访问数据;通信线

5、路上窃取数据 目前很多数据库产品都提供了数据加密例行程序,或提供加密程序接口,Oracle数据库的安全性措施一是用户标识和鉴定;二是授权和检查机制:三是审计技术(是否使用审计技术可由用户灵活选择);四 允许用户通过触发器灵活定义自己的安全性措施。,一、用户标识和鉴定在Oracle中,最外层的安全性措施是让用户标识自己的名字,然后由系统进行核实。Oracle允许用户重复标识三次,如果三次未通过,系统自动退出。,二、授权与检查机制Oracle的权限包括系统权限和数据库对象的权限两类,采用非集中的授权机制,即DBA负责授予与回收系统权限,每个用户授予与回收自己创建的数据库对象的权限。Oracle允许

6、重复授权,即可将某一权限多次授予同一用户,系统不会出错。Oracle也允许无效回收,即用户没有某种权限,但回收此权限的操作仍算成功,1系统权限Oracle提供了80多种系统权限,如创建会话、创建表、创建视图、创建用户等。DBA在创建一个用户时需要将其中的一些权限授予该用户。Oracle支持角色的概念。所谓角色就是一组系统权限的集合,目的在于简化权限管理。Oracle除允许DBA定义角色外,还提供了预定义的角色,如CONNECT,RESOURCE和DBA。具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵。即可以执行ALTER TABLE,CREATE VIEW,CREATE IND

7、EX,DROP TABLE, DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作。,RESOURCE角色可以创建表,即执行CREATE TABLE操作。创建表的用户将拥有对该表的所有权限。DBA角色可以执行某些授权命令,创建表,对任何表的数据进行操纵。它涵盖了前两种角色,此外还可以执行一些管理操作,DBA角色拥有最高级别的权限。例如DBA建立一用户U1后,欲将ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP IND

8、EX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系统权限授予U1,则可以只简单地将CONNECT角色授予U1即可:GRANT CONNECT TO U1;这样就可以省略十几条GRANT语句。,2数据库对象的权限在Oracle中,可以授权的数据库对象包括基本表、视图、序列、同义词、存储过程、函数等,其中最重要的是基本表。对于基本表Oracle支持三个级别的安全性:表级、行级和列级。 (1)表级安全性 表的创建者或DBA可以把表级权限授予其他用户,表级权限包括:ALTER:修改表定义 DELETE:删除表记录INDEX:在表上建索

9、引INSERT:向表中插入数据记录SELECT:查找表中记录UPDATE:修改表中的数据,ALL:上述所有权限表级授权使用GRANT和REVOKE语句。,(2)行级安全性Oracle行级安全性由视图实现。用视图定义表的水平子集,限定用户在视图上的操作,就为表的行级提供了保护。视图上的授权与回收与表级完全相同。例如,只允许用户U2查看Student表中信息系学生的数据,则首先创建信息系学生视图S_ IS,然后将该视图的SELECT权限授予U2用户。(3)列级安全性Oracle列级安全性可以由视图实现,也可以直接在基本表上定义。用视图定义表的垂直子集就可以实现列级安全性,方法与上面类似。,直接在基

10、本表上定义和回收列级权限也是使用GRANT和REVOKE语句。目前Oracle的列级权限只有UPDATE,回收列级UPDATE权限时,Oracle不允许一列一列地回收,只能回收整个表的UPDATE权限。例如,GRANT UPDATE(Sno,Cno)ON SCTO U2; 把对SC表中Sno列和Cno列的UPDATE权限授予U2用户。REVOKE UPDATE ON SC FROM U2;回收了U2用户对SC表中Sno列和Cno列的UPDATE权限。在Oracle中,表、行、列三级对象自上而下构成一个层次结构,其中上一级对象的权限制约下一级对象的权限。例如当一个用户拥有了对某个表的UPDATE

11、权限,即相当于在表的所有列都拥有UPDATE权限。,Oracle对数据库对象的权限采用分散控制方式,允许具有WITH GRANTOPTION的用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先,U1 U2 U3 U4循环授权 Oracle把所有权限信息记录在数据字典中。当用户进行数据库操作时,Oracle首先根据数据字典中的权限信息,检查操作的合法性。在Oracle中,安全性检查是任何数据库操作的第一步。,三、Oracle的审计技术在Oracle中,审计分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己

12、创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。,Oracle的审计功能很灵活,是否使用审计,对哪些表进行审计,对哪些操作进行审计等都可以由用户选择。为此,Oracle提供了AUDIT 语句设置审计功能,NOAUDIT语句取消审计功能。设置审计时,可以详细指定对哪些SQL操作进行审计。 例如,对修改SC表结构或数据的操作进行审计可使用如下语句:AUDIT ALTER, UPDATE ON SC取消对SC表的一

13、切审计可使用如下语句, NOAUDIT ALL,ON SC; 在Oracle中,审计设置以及审计内容均存放在数据字典中。其中审计设置记录在数据字典表SYSTABLES中,审计内容记录在数据字典表SYSAUDIT_ TRAIL中。,四、用户定义的安全性措施除了系统级的安全性措施外,Oracle还允许用户用数据库触发器定义特殊的更复杂的用户级安全性措施。例如,规定只能在工作时间内更新Student表,可以定义如下触发器,其中sysdate为系统当前时间:CREATE OR REPLACE TRIGGER secure studentBEFORE INSERT OR UPDATE OR DELETE

14、 ON StudentBEGIN IF(TO_CHAR(sysdate,DY) IN(SAT,SUN)OR(TO_NUMBER(sysdate HH24) NOT BETWEEN 8 AND l7) THEN,RAISE_APPLICATION_ERROR(-20506,You may only change chta during normal business hours) END IFEND;触发器一经定义便存放在数据字典中。用户每次对Student表执行INSERT,UPDATE或DELETE操作时都会自动触发该触发器,由系统检查当时的系统时间,如果是周六或周日,或者不是8点至17点,

15、系统会拒绝执行用户的更新操作,并提示出错信息。类似地,用户还可以利用触发器进一步细化审计规则,使审计操作的粒度更细。,综上所述,Oracle提供了多种安全性措施,提供了多级安全性检查,其安全性机制与操作系统的安全机制彼此独立,数据字典在Oracle的安全性授权和检查以及审计技术中起着重要作用。,5.2 数据库完整性,是指数据的正确性和相容性 安全性和完整性的区别 安全性:防止非法用户和非法操作 完整性:防止合法用户使用数据库时向数据库中加入不合语义的数据。 实现数据库完整性要求 系统要提供定义完整性约束条件的机制 系统要提供检查是否违背完整性约束条件的方法完整性控制,1. 完整性约束条件 加在

16、数据库数据之上的语义约束条件 完整性约束条件的作用对象有三类: 1)列级,指对其取值类型、范围、精度、排序等的约束条件 2)元组级,指对记录中各个字段间的联系的约束 3)关系级,指对若干记录间、关系集合上以及关系之间的联系的约束 三类对象状态有: 1)静态约束: 数据库每一个确定状态所应满足的约束条件 2)动态约束: 数据库从一种状态向另一种状态转变时,新旧值之间所应满足的约束条件 完整性约束条件可分为六类:,1) 静态列级约束 对一个列取值域的说明 (1)对数据类型的约束(包括数据的类型、长度、单位、精度等) 例:中央民族大学数据库中学生姓名的数据类型规定为字符型,长度为20,因为少数民族韵姓名较长。 (2)对数据格式的约束 例:规定学号的前两位表示入学年份,中间两位表示系的编号,后三位为顺序编号。出生日期的格式为YYMMDD。,(3)对取值范围或取值集合的约束 例,规定学生成绩的取值范围为0100, (4)对空值的约束 例:学生学号不能取空值,成绩可以为空值。 (5)其他约束 例:关于列的排序说明,组合列等。 2) 静态元组约束 规定组成一个元组的各个列之间的约束关系 例如:订货关系中包含发货量、订货量等列,规定发货量不得超过订货量。,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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