ch数据库保护PPT课件_第1页
ch数据库保护PPT课件_第2页
ch数据库保护PPT课件_第3页
ch数据库保护PPT课件_第4页
ch数据库保护PPT课件_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章第七章数据库保护第1页/共97页主要内容: 数据库的恢复 数据库的并发控制 数据库的完整性 数据库的安全性第2页/共97页事务的概念 事务定义事务定义 事务是由一系列操作序列构成的程序执行单元事务是由一系列操作序列构成的程序执行单元。这些操作要么都做,要么都不做,是一个不可分割的工作单位。例如银行转帐。SQLSQL中事务的定义中事务的定义事务以Begin transaction开始,以Commit work或 Rollback work结束。Commit work表示提交,事务正常结束。Rollback work表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态。第3页/共97

2、页7.1.2 事务的性质事务的性质事务的性质ACIDACID 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability)第4页/共97页事务的性质原子性 事务中的操作,要么全做成,要么都不做 事务是不可拆分的 事务必须以 Commit/Rollback 结束由DBMS的事务管理子系统完成。第5页/共97页事务的性质一致性 独立运行的事务,必须保证保持数据库的一致状态 即数据不会因为事务的执行而遭到破坏。数据库的一致性状态由编写事务程序的程序员来负责,也可以由系统测试完整性约束自动完成。由DBMS的完整性子系统完成。第6页/共97

3、页事务的性质隔离性 系统必须保证事务不受其它并发执行事务的影响。 多个并发事务之间不能相互干扰 并发不影响事务的执行隔离性通过并发控制子系统实现。第7页/共97页事务的性质持久性 一旦事务成功完成(Commit),它对数据库的更新应该是持久的 即使在写入磁盘之前,系统发生故障 在下次启动之后,也应保障数据更新的有效持久性通过恢复管理子系统实现。第8页/共97页7.1.2 事务的性质对数据库的访问是建立在读和写两个操作的基础上。read(X):从数据库传送数据项X到事务的工作区中。write(X):从事务的工作区中将数据项X写回数据库。第9页/共97页7.1.2 事务的性质 举例:银行转帐:事务

4、Ti从帐户A过户100¥到帐户B 。T:read(A);A := A 100;write(A);read(B);B := B + 100;write(B);read(X):从数据库传送数据项X到事务的工作区中。write(X):从事务的工作区中将数据项X写回数据库。第10页/共97页练习: 、DMBS的并发控制子系统,保证了事务()的实现。 、事务的独立执行不会破坏DB的完整性,称为() 、DBMS中实现事务持久性的子系统是: ( )、隔离性、隔离性、事务的一致性。、事务的一致性。、恢复管理子系统。、恢复管理子系统。第11页/共97页7.1.3 故障类型和恢复方法 在运行数据库系统时,可能会出

5、现各种各样的故障。发生故障时,可能丢失数据库中的数据。DBMS的恢复管理子系统采取一系列措施,保证在任何情况下保持事务的原子性和持久性,确保数据不被损坏。 1、数据库系统中可能发生的故障第12页/共97页7.1.3 故障类型和恢复方法 (1)事务故障 非预期的事务故障 事务由于某些内部条件无法继续正常执行 如:非法输入、找不到数据、溢出等 可预期的事务故障 应用程序可以发现的事务故障 该事务可在以后的某个时间重新执行 此时数据库中的数据处于非一致状态第13页/共97页7.1.3 故障类型和恢复方法 (2)系统故障 由于特殊的原因导致事务无法正常执行,而系统必须重新启动 如停电、CPU故障等 一

6、般只影响正在执行的事务,而不会破坏数据库本身以及DBMS环境 系统重新启动时,数据库处于一种非一致性状态第14页/共97页7.1.3 故障类型和恢复方法 ()介质故障 外存发生故障,导致存储其中的数据、或数据库本身、或DBMS软件处于不正常状态 这类故障的破坏性较大 计算机病毒 破坏DBMS软件环境 破坏OS环境 导致数据库系统无法正常工作第15页/共97页7.1.4 恢复的基本原则和实现方法 (1)定期对整个数据库进行复制和转储 冗余技术是数据库恢复的保障 建立数据的冗余 与数据库分别存储 利用冗余数据,重建数据,使其达到一致的状态 建立整个数据库的冗余 将整个数据库进行备份(冗余的数据库)

7、 需要时将备份数据库恢复(重载)至系统中 解决数据库本身被破坏的场合 只能恢复到数据库被备份时的状态第16页/共97页(1)定期对整个数据库进行复制和转储 转储可以分为: 静态转储:在存储期间不允许对数据库进行存取、修改。 动态转储:在存储期间允许对数据库进行存取、修改。 转储还可以分为: 海量存储:每次存储全部数据库 增量存储:每次只存储上次转储后更新过的数据。第17页/共97页7.1.4 恢复的基本原则和实现方法 (2)、建立日志文件 以日志文件的形式,记录事务对数据库的更新操作 日志文件记录了数据库更新的所有日志记录的序列 常见的是以记录为单位的日志文件 利用日志记录,可对数据库做相应的

8、恢复 日志内容 各个事务的开始标志 各个事务的数据更新操作 各个事务的结束(Commit/Rollback)第18页/共97页7.1.4 恢复的基本原则和实现方法 ()恢复 数据库本身(或DBMS)被破坏 重新安装DBMS Reload数据库副本(先前被转储的数据库) 用日志文件执行REDO操作,不丢失对数据库的更新。 需DBA人工处理第19页/共97页数据库恢复技术恢复 数据库本身未被破坏,但有些数据不可靠 系统重启,扫描日志文件(耗时) 根据日志,作Undo:对更新的操作执行反向操作 系统自动完成第20页/共97页7.1.5 运行记录优先原则 、至少要等相应运行记录已经写入“日志”文件后,

9、才能允许事务往数据库中写记录。 、直至事务的所有运行记录都已写入运行“日志”文件后,才能允许事务完成“END TRANSACTION”处理。第21页/共97页练习: 、为了能在出故障时,做好恢复,应在平时做好两件事情:( )和( ) 、后备副本的主要作用是( ) 3、日志文件用于保存( )、备份和日志、备份和日志、故障恢复、故障恢复、对数据库的更新操作、对数据库的更新操作第22页/共97页7.1.6 SQL中的恢复操作 ORACLE中的实现方法: COMMIT WORK RELEASE ROLLBACK WORK RELEASE SET AUTOCOMMIT IMMEDIATE|ON|OFF第

10、23页/共97页7.2.1 数据库的并发操作带来的问题 数据库是一个共享资源,可以由多个用户使用。 这些用户程序可以一个一个的串行执行,每一时刻只有一个用户程序运行,执行对数据库的存取。其他程序必须等到这个用户程序结束后才能对数据库存取。 在多用户共享系统中,如果多个用户同时对同一数据进行操作称为并发操作。可能会互相干扰,破坏了事务的隔离性。第24页/共97页1、丢失更新问题时间更新事务T1数据库中A的值更新事务T21502 read(A)read(A)34A:=A-15A:=A*26write(A)740write(A)8100A值100,错误,第8步丢失了T1对数据库的更新操作。第25页/

11、共97页2、不一致分析问题时间更新事务T1数据库中A的值读事务T31502 read(A)3read(A)4A:=A-105write(A)640在第6步时,由于T1已更新了A的值,此时T3使用的A值仍为50,因此造成了不一致。即读了过时的数据。第26页/共97页3、“脏数据”的读出时间更新事务T1数据库中A的值读事务T41502 read(A)3A:=A-104write(A)540read(A)6ROLLBACK750数据库中A的值被恢复为50,事务T4读出的A的值为40,未提交随后又被撤销的数据称为“脏数据”。第27页/共97页并发控制需要靠数据库的并发控制子系统来解决。如时间更新事务T

12、1数据库中A的值更新事务T21502 read(A)3read(A)4A:=A-15A:=A*26write(A)740write(A)81001、在第3步避免T2执行read,因为T1已经读了A的值,将要进行更新。2、应避免T1执行write,因为T2已经在使用A值。3、应避免T2执行write,因为T1已写了新的A值,事务T2的写操作将把T1的写操作冲掉。第28页/共97页7.2.2 排它型锁(X封锁) 封锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用。 并发控制的基本方法就是封锁。 数据的互斥访问 当某事务访问某数据项时,其他任何事务均不得修改该数据项

13、 对访问的数据项加锁 不同的加锁方式,产生不同的隔离层次,导致不同的一致性结果,获得不同的并发度第29页/共97页7.2.2 排它型锁(X封锁) 封锁的类型 排它锁(X锁,eXclusive lock):事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁。 共享锁(S锁,Share lock):事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,而对R的S锁请求可以成功。第30页/共97页、X封锁和PX协议 X封锁:事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁。 PX协议:任何企图更新记录R的事务必须先

14、执行LOCK X( R),以获得对它的寻址能力,并对它取得X封锁。第31页/共97页举例:时间更新事务T1数据库中A的值更新事务T21502LOCK X(A) 3read(A)4LOCK X(A)5A:=A-10wait6write(A) wait740wait8UNLOCK(A)wait9(重做)LOCK X(A)10read(A)11A:=A*212write(A)1380UNLOCK(A)利用PX协议,执行T1和T2。事务T1先对A封锁,写回新的A值后,T1执行解除封锁操作,并对A进行修改。这个过程能得到正确结果。第32页/共97页7.2.2 排它型锁(X封锁) 对于删除操作,PX协议同

15、样适用。要删除一个记录,首先也要执行LOCK(X)操作和read操作后才能删除。 对于插入操作,就不需要读记录,因此,可以假定“INSERT T”本包含了对新插入记录R的X封锁。第33页/共97页2、并发事务的可串行化 多个事务可能同时(交叉地)在系统中运行 提高处理器、磁盘的利用率 减少等待时间 多个事务并发运行,由事务管理器进行调度 可串行化调度 并发运行的结果,与事务按某一顺序串行运行的结果等同举例:图7.中第34页/共97页3、由事务的ROLLBACK引起的丢失更新问题时间更新事务T1数据库中A的值更新事务T21502LOCK X(A) 3read(A)4A:=A-105write(A

16、)6UNLOCK(A)407LOCK X(A)8read(A)9A:=A*210write(A)1180UNLOCK(A)12COMMIT13ROLLBACK1450第35页/共97页 上图中的情况不可原谅,因为此时数据库中A的值是错的。为了避免数据库恢复恢复时丢失更新时丢失更新,就不应该允许事务去使用一个未提交的修改。 PXC协议由PX协议和下面一条规则组成: “X封锁必须保留到事务终点(COMMIT ROLLBACK)”第36页/共97页7.2.3 活锁与死锁 当多个事务请求封锁同一数据对象时,有可能出现锁的异常 活锁 多个事务申请对数据R加锁,而系统随机地加锁,导致某些事务长等 活锁策略

17、 设定系统按事务申请锁的时间顺序进行排队第37页/共97页7.2.3 活锁与死锁第38页/共97页7.2.3 活锁与死锁 死锁 两个(或多个)事务互相申请对方加锁对象的排它锁,造成循环等待TTR2R1第39页/共97页7.2.3 活锁与死锁 预防 一次加锁法 事务一次性对需要的数据进行加锁?降低了系统的并发性,数据的不可预见性n顺序加锁法n估算需要的锁,对系统中的锁设定一个加锁顺序,所有事务均按照该顺序进行加锁? 很难估算 死锁几乎无法避免,允许死锁的发生,对其进行诊断和解除第40页/共97页7.2.3 活锁与死锁 诊断 超时法设定时限,超过即为死锁 等待图法回路即为死锁 解除 杀死 时间戳

18、代价最小第41页/共97页7.2.4 共享型封锁(S封锁) 共享锁(S锁,Share lock):事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,而对R的S锁请求可以成功。 相容矩阵: T2T1XSXNNYSNYYYYY第42页/共97页时间事务T7数据库中ABC的值事务T8140,50,302read(A)3Sum:=(A)4read(B)5Sum:=Sum+B6UNLOCK(A)407LOCK X(A)8read(A)9C:=C-101040,50,20write(C)11LOCK X(A)12A:=A+1013write(A)1450,50,20COMMIT15read(C

19、)16Sum:=Sum+C50第43页/共97页时间事务T7数据库中ABC的值事务T8140,50,302LOCK S(A)3read(A)4Sum:=A5LOCK S(B)6Read(B)407Sum:=Sum+BLOCK X(C)8read(C)9C:=C-1010wait(C)1140,50,20LOCK X(A)12wait13wait14wait15LOCK S(C)wait16wait50wait第44页/共97页 PS协议的主要内容如下:任何要更新记录R的操作必须先执行LOCK ( R) 操作,以获得对该记录寻址的能力并对它取得S封锁。如果未获准S封锁,那么这个事务进入等待状态,

20、一直到获准S封锁,事务才继续做下去。 当事务获准对记录R的S封锁后,在记录R的修改前必须把S的封锁升级为X封锁。 像PXC协议一样,也有一个PSC协议。PSC协议是在PS协议基础上再增加一条规则: S封锁要保持到事务终点。第45页/共97页举例:时间更新事务T1更新事务T21LOCK S(A)2LOCK S(A)3 read(A)4read(A)5A:=A-106A:=A*27UPGRADE(A)8waitUPGRADE(A)9waitwait在第9步发生死锁,此时系统挑一个事务牺牲,撤销并恢复到初始状态。第46页/共97页7.2.4 共享型封锁(S封锁)X锁S锁只允许一个事务独锁数据允许多个

21、事务并发锁某一数据获准X锁的事务可以修改数据获准S锁的事务只能读数据,但不能修改数据事务的并发度低事务的并发度高,但增加了死锁的可能性X锁必须保留到事务终点根据需要,可随时解除S锁解决“丢失更新”问题解决“读不一致”问题第47页/共97页两段封锁法 (Two-phase Locking) 内容:在对任何数据进行读写之前,事务首先要获得对该数据的封锁。在释放一个封锁之后,事务不再获得任何其它封锁。即事务分为两个阶段:生长阶段:获得封锁。收缩阶段:释放封锁。 定理:若所有事务均遵从两段锁协议,则这些事务的所有并行调度都是可串行化的。第48页/共97页 示例lock-S(A)lock-S(B)loc

22、k-X(C)unlock(A) unlock(C)unlock(B)遵从两段锁协议。lock-S(A)unlock-S(A)lock-S(B)lock-X(C) unlock(C)unlock(B)不遵从两段锁协议。 遵从两段锁协议仍可能发生死锁lock-S(A);lock-X(B);wait.lock-S(B)lock-X(A)wait T1 T2 T1: lock-S(A)lock-S(B) unlock(A)unlock(B)T2: lock-S(A)lock-S(B) unlock(A)unlock(B)第49页/共97页2、两段封锁法和可串行化调度的关系 如果所有事务都是两段式的,那

23、么它们的并发调度是可串行化的。两段式封锁是可串行化的充分条件,但不是必要条件。第50页/共97页举例:时间T9(H:=F+1)数据库中FGH的值T10(F:=G+1)10,0,02LOCK S(F)3read(F)4ATEMP:=F5UNLOCK (F)6LOCK S(G)7read(G)8BTEMP:=G9LOCK X(F)10F:=BTEMP+111Write(F)121,0,0COMMIT13LOCK X(H)14H:=ATEMP+115write(H)16COMMIT1,0,1第51页/共97页时间T9(H:=F+1)数据库中FGH的值T10(F:=G+1)10,0,02LOCK S(

24、F)3read(F)4ATEMP:=F5UNLOCK (F)6LOCK S(H)7read(H)8CTEMP:=H9LOCK X(F)10F:=CTEMP+111Write(F)121,0,0COMMIT13LOCK X(H)14H:=ATEMP+115write(H)16COMMIT1,0,1第52页/共97页7.3 数据库的完整性 数据库中的完整性是指数据的正确性和相容性 完整性约束保证了授权用户对数据库的修改不会导致数据一致性的破坏 一致性是指满足所有已知的完整性约束第53页/共97页7.3 数据库的完整性 在SQL中,表达完整性约束的规则有主键约束、外键约束、属性值约束和全局约束等。第

25、54页/共97页 1、主键约束 若属性A是基本关系R的主属性,则属性A不能取空值。(主码不能为Null )1)主键子句Primary Key (A1, A2, Ai )2)主键短语S# CHAR(4) Primary Key 7.3.3 数据库的完整性约束第55页/共97页 2、外键约束 外键( Foreign Key )及参照关系:设F 是基本关系R 的一个或一组属性,但不是R 的键。如果F 与基本关系S 的主键KS 相对应,则称F 是R 的外键。并称R 为参照关系(从表),S 为被参照关系(主表)。R和S不一定是不同的关系7.3.3 数据库的完整性约束第56页/共97页若属性 F 是 R

26、的外键,它与 S 的主键 KS 相对应,则 R 中每个元组在 F 上的值必须为:或者取空值;或者等于 S 中某个元组的主键值。(不能含有无匹配的外键 )Foreign Key (F1, F2, Fi) References S7.3.3 数据库的完整性约束第57页/共97页第58页/共97页 主键与外键 从表的外键与主表的主键相匹配 必须具有相同的数据类型 char(n) 与 varchar(n)是不同的类型 可以不同名 主键必须为 not null 外键可以为 null(视在表中的角色而定)完整性约束第59页/共97页完整性约束第60页/共97页 数据更新,可能引起参照完整性的违约 依赖关系

27、 在依赖关系中插入外键值 在依赖关系中修改外键值 基本关系 在基本关系中修改主键(已被参照) 在基本关系中删除元组(已被参照)完整性约束参照违例第61页/共97页1、删除基本关系元组时的考虑 RESCTICT 方式:只有当依赖关系中没有一个外键值与要删除的基本关系中主键值相同时,系统才能执行删除。 CASCADE:将依赖关系中所有外键值与基本关系中要删除的主键值相对应的原则一起删除。 SET NULL:删除基本元组时,将依赖关系中所有与基本关系中被删除主键值相对应的外键值置为空。第62页/共97页、修改基本关系元组时的考虑 RESCTICT 方式:只有当依赖关系中没有一个外键值与要修改的基本关

28、系中主键值相同时,系统才能执行删除。 CASCADE:将依赖关系中所有外键值与基本关系中要修改的主键值相对应的原则一起删除。 SET NULL:修改基本关系的主键值时,将依赖关系中所有与基本关系中要修改的主键值相对应的外键值置为空值。第63页/共97页Create Domain stu_name varchar(20)Create Table Student (sno char(10),sname stu_name,sage smallint,ssex char(1),sdept char(2),Primary Key (sno)Create Table Course (cno char(10

29、),cname char(30),credit smallint,Primary Key (cno)完整性约束DDL第64页/共97页Create Table SC (sno char(10), cno char(10), grade smallint,Primary Key (sno,cno),Foreign Key (sno) References Studenton delete cascadeon update cascade,Foreign Key (cno) References Courseon delete cascadeon update cascade)完整性约束DDL第6

30、5页/共97页、非空值约束如果我们要求某个属性的值不允许为空值时,那么可在属性定义属性后加上关键字:“NOT NULL”、针对属性的检查子句(CHECK子句)、针对域作约束必须使CHECK 表达式为真Create Domain stu_age integer Check(col =15 and col =15 AND(SEX=M AND AGE=25) OR (SEX=F AND AGE=24)第68页/共97页)基于元组的检查子句问题:CREATE TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,PRIMARY KEY(S#,C#),CHECK(S

31、# IN (SELECT S# FROM S),CHECK(C# IN (SELECT C# FROM C)在关系S中删除一个元组,这个操作将与关系SC中的检查子句无关。如果关系SC中存在被删学生的成绩元组时,关系SC将违反检查子句中的条件。第69页/共97页、断言(Assertion)断言,全局约束在整个数据库(多个表之间)要求满足的校验凌驾于所有表之上Assertion的声明Create Assertion Check()第70页/共97页不允许男生选修zhang老师的课。CREATE ASSERTION ASSE1 CHECKCREATE ASSERTION ASSE1 CHECK( N

32、OT EXISTS(SELECT * FROM SC WHERE C# IN (SELECT C# FROM C WEHRE TEACHER=zhang) AND S# IN (SELECT S# FROM S WHERE SEX=M)、断言(Assertion)第71页/共97页规定学生的选课不得超过50门Create Assertion sc_limitedCheck ( Not exists (Select sno,count(*)From SCGroup By snoHaving count(*) 50)Create Table SC(,Check ( Not exists ( Sel

33、ect sno,count(*) From SCGroup By sno Having count(*) 50)、断言(Assertion)第72页/共97页)约束的命名:为了便于对约束进行操作,需要为每个约束起个名字。举例:S# CHAR(4) CONSTRAINT S_PK PRIMARY KEYAGE SMALLINT CONSTRAINT S_CHECK CHECK(AGE=15 AND AGE=15 AND VALUE=15 AND AGE=15 AND VALUE=35)第76页/共97页4)断言的撤消 DROP ASSERTION ASSE1,ASSE2第77页/共97页练习:D

34、EPT(DNO,DNAME,MGR-NO)T(TNO,TNAME,AGE,SEX,SALARY,DNO)TC(TNO,CNO,TEXTBOOK)C(CNO,CNAME,DNO)完成下面完整性约束:、编号小于D8的教师年龄在间,其他系的教师年龄在间。第78页/共97页 CHECK (DNO =D8 AND AGE BETWEEN 20 AND 60)、编号小于D8的教师年龄在间,其他系的教师年龄在间。第79页/共97页2、每个系教师的平均工资不能低于元CREATE ASSERTION ASSE1 CHECK(2000=(SELECT AVG(SALARY) FROM TGROUP BY DNO)

35、DEPT(DNO,DNAME,MGR-NO)T(TNO,TNAME,AGE,SEX,SALARY,DNO)TC(TNO,CNO,TEXTBOOK)C(CNO,CNAME,DNO)第80页/共97页2、不允许男教师担任“艺术体操课程CREATE ASSERTION ASSE2 CHECK(NOT EXISTS(SELECT * FROM TC WHERE TNO IN(SELECT TNO FROM T WHERE SEX=M)AND CNO IN(SELECT CNO FROM C WHERE CNAME=艺术体操)DEPT(DNO,DNAME,MGR-NO)T(TNO,TNAME,AGE,S

36、EX,SALARY,DNO)TC(TNO,CNO,TEXTBOOK)C(CNO,CNAME,DNO)第81页/共97页7.4 数据库的安全性 7.4.1 安全性级别 安全性: 是指保护数据库,以防止不合法的使用所造成的数据泄露、更改或破坏。 数据库系统中大量数据集中存放,许多用户直接共享。 系统安全保护措施是否有效是数据库系统的主要性能指标之一。 从数据库角度: 自然环境安全性:防治自然环境的破坏 系统安全性:使指控制用户不得作任何未经授权的事。第82页/共97页7.4.1 安全性级别 为了保护数据库,防止恶意的滥用,可以从以下几方面设置各种安全措施: 1、环境级 2、职员级 3、OS级 4、

37、网络级 5、数据库系统级第83页/共97页7.4.2 权限 用户(或应用程序)实用数据库的方式称为权限,有下面几种: 读权限 插入权限 修改权限 删除权限 在具体实用时,可根据需要授给用户上述权限中的一个或多个,也可以不授予任何一个权限。第84页/共97页7.4.2 权限 除了访问数据的权限,系统还提供给用户修改数据库模式的权限:1、索引权限:允许用户创建和删除数据库模式的权限2、资源权限:允许用创建新的关系。3、修改权限:允许用户在关系结构中加入或删除属性。4、撤消权限:允许用户撤消关系。第85页/共97页7.4.3 权限的转授和回收 数据库系统允许用户把已获得的权限再转授给其它用户,也允许

38、把已授给其它用户的权限再回收上来,但应保证转授出去的权限能收得回来。 用权限图来表示权限转让关系。第86页/共97页7.4.3 权限的转授和回收在权限图中,结点是用户,用户为DBA的结点称为根结点。图中一条有向边UiUj表示用户Ui把某权限转授给用户Uj。第87页/共97页7.4.3 权限的转授和回收 表示DBA把某权限授给用户U1,U2,U3。U1又把权限转授给用户U4和U5,U2把权限转授给U5。第88页/共97页7.4.3 权限的转授和回收 如果如果DBADBA决定收决定收回用户回用户U1U1的权限,的权限,则则U4U4的权限也被的权限也被回收。由于回收。由于U5U5的的权限是从权限是从

39、U1U1和和U2U2两处得到,因此两处得到,因此回收回收U1U1的权限时,的权限时,还不能回收还不能回收U5U5的的权限。只有同时权限。只有同时也回收也回收U2U2的权限的权限时,时,U5U5的权限才的权限才回收。回收。第89页/共97页7.4.4 SQL中的安全性控制 SQLSQL中的两个功能提供了安全性:一是视图机制,它可以中的两个功能提供了安全性:一是视图机制,它可以用来对无权用户屏蔽数据。二是授权子系统,它允许有特用来对无权用户屏蔽数据。二是授权子系统,它允许有特定存储权的用户有选择地和动态地把这些权限授予其它用定存储权的用户有选择地和动态地把这些权限授予其它用户。户。(1 1)视图)视图 视图是从一个护几个基本表导出的表,某个用户可以定义若干视图。它是虚表,数据库中只存放了它的定义。 视图机制使系统有三个优点:数据安全性 、数据独立性和操作简便性。 对于某个用户,只能接触到提供给它的视图所定义的数据部分,不允许该用户操作的数据将被隔离在该视图所能引用的数据之外。第90页/共97页7.4.4 SQL中的安全性控制 2、SQL2中的用户权限及其操作 1 1)用户权限:)用户权限: 用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论