ch数据库保护实用.pptx

上传人:莉*** 文档编号:87571078 上传时间:2023-04-16 格式:PPTX 页数:96 大小:369.48KB
返回 下载 相关 举报
ch数据库保护实用.pptx_第1页
第1页 / 共96页
ch数据库保护实用.pptx_第2页
第2页 / 共96页
点击查看更多>>
资源描述

《ch数据库保护实用.pptx》由会员分享,可在线阅读,更多相关《ch数据库保护实用.pptx(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、7.1.1事务的概念事务定义事务定义事务是由一系列操作序列构成的程序执行单元事务是由一系列操作序列构成的程序执行单元。这些操作要么都做,要么都不做,是一个不可分割的工作单位。例如银行转帐。SQLSQL中事务的定义中事务的定义事务以Begin transaction开始,以Commit work或 Rollback work结束。Commit work表示提交,事务正常结束。Rollback work表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态。第1页/共96页7.1.2 事务的性质事务的性质事务的性质ACIDACID原子性(Atomicity)一致性(Consistency)隔

2、离性(Isolation)持久性(Durability)第2页/共96页事务的性质原子性事务中的操作,要么全做成,要么都不做事务是不可拆分的事务必须以 Commit/Rollback 结束由DBMS的事务管理子系统完成。第3页/共96页事务的性质一致性独立运行的事务,必须保证保持数据库的一致状态即数据不会因为事务的执行而遭到破坏。数据库的一致性状态由编写事务程序的程序员来负责,也可以由系统测试完整性约束自动完成。由DBMS的完整性子系统完成。第4页/共96页事务的性质隔离性系统必须保证事务不受其它并发执行事务的影响。多个并发事务之间不能相互干扰并发不影响事务的执行隔离性通过并发控制子系统实现。

3、第5页/共96页事务的性质持久性一旦事务成功完成(Commit),它对数据库的更新应该是持久的即使在写入磁盘之前,系统发生故障在下次启动之后,也应保障数据更新的有效持久性通过恢复管理子系统实现。第6页/共96页7.1.2 事务的性质对数据库的访问是建立在读和写两个操作的基础上。read(X):从数据库传送数据项X到事务的工作区中。write(X):从事务的工作区中将数据项X写回数据库。第7页/共96页7.1.2 事务的性质举例:银行转帐:事务Ti从帐户A过户100¥到帐户B。T:read(A);A:=A 100;write(A);read(B);B:=B+100;write(B);read(X

4、):从数据库传送数据项X到事务的工作区中。write(X):从事务的工作区中将数据项X写回数据库。第8页/共96页练习:、DMBS的并发控制子系统,保证了事务()的实现。、事务的独立执行不会破坏DB的完整性,称为()、DBMS中实现事务持久性的子系统是:()、隔离性、事务的一致性。、恢复管理子系统。第9页/共96页7.1.3 故障类型和恢复方法在运行数据库系统时,可能会出现各种各样的故障。发生故障时,可能丢失数据库中的数据。DBMS的恢复管理子系统采取一系列措施,保证在任何情况下保持事务的原子性和持久性,确保数据不被损坏。1、数据库系统中可能发生的故障第10页/共96页7.1.3 故障类型和恢

5、复方法(1)事务故障非预期的事务故障事务由于某些内部条件无法继续正常执行如:非法输入、找不到数据、溢出等可预期的事务故障应用程序可以发现的事务故障该事务可在以后的某个时间重新执行此时数据库中的数据处于非一致状态第11页/共96页7.1.3 故障类型和恢复方法(2)系统故障由于特殊的原因导致事务无法正常执行,而系统必须重新启动如停电、CPU故障等一般只影响正在执行的事务,而不会破坏数据库本身以及DBMS环境系统重新启动时,数据库处于一种非一致性状态第12页/共96页7.1.3 故障类型和恢复方法()介质故障外存发生故障,导致存储其中的数据、或数据库本身、或DBMS软件处于不正常状态这类故障的破坏

6、性较大计算机病毒破坏DBMS软件环境破坏OS环境导致数据库系统无法正常工作第13页/共96页7.1.4 恢复的基本原则和实现方法(1)定期对整个数据库进行复制和转储冗余技术是数据库恢复的保障建立数据的冗余与数据库分别存储利用冗余数据,重建数据,使其达到一致的状态建立整个数据库的冗余将整个数据库进行备份(冗余的数据库)需要时将备份数据库恢复(重载)至系统中解决数据库本身被破坏的场合只能恢复到数据库被备份时的状态第14页/共96页(1)定期对整个数据库进行复制和转储转储可以分为:静态转储:在存储期间不允许对数据库进行存取、修改。动态转储:在存储期间允许对数据库进行存取、修改。转储还可以分为:海量存

7、储:每次存储全部数据库增量存储:每次只存储上次转储后更新过的数据。第15页/共96页7.1.4 恢复的基本原则和实现方法(2)、建立日志文件以日志文件的形式,记录事务对数据库的更新操作日志文件记录了数据库更新的所有日志记录的序列常见的是以记录为单位的日志文件利用日志记录,可对数据库做相应的恢复日志内容各个事务的开始标志各个事务的数据更新操作各个事务的结束(Commit/Rollback)第16页/共96页7.1.4 恢复的基本原则和实现方法()恢复数据库本身(或DBMS)被破坏重新安装DBMSReload数据库副本(先前被转储的数据库)用日志文件执行REDO操作,不丢失对数据库的更新。需DBA

8、人工处理第17页/共96页数据库恢复技术恢复数据库本身未被破坏,但有些数据不可靠系统重启,扫描日志文件(耗时)根据日志,作Undo:对更新的操作执行反向操作系统自动完成第18页/共96页7.1.5 运行记录优先原则、至少要等相应运行记录已经写入“日志”文件后,才能允许事务往数据库中写记录。、直至事务的所有运行记录都已写入运行“日志”文件后,才能允许事务完成“END TRANSACTION”处理。第19页/共96页练习:、为了能在出故障时,做好恢复,应在平时做好两件事情:()和()、后备副本的主要作用是()3、日志文件用于保存()、备份和日志、故障恢复、对数据库的更新操作第20页/共96页7.1

9、.6 SQL中的恢复操作ORACLE中的实现方法:COMMIT WORK RELEASEROLLBACK WORK RELEASESET AUTOCOMMIT IMMEDIATE|ON|OFF第21页/共96页7.2.1 数据库的并发操作带来的问题数据库是一个共享资源,可以由多个用户使用。这些用户程序可以一个一个的串行执行,每一时刻只有一个用户程序运行,执行对数据库的存取。其他程序必须等到这个用户程序结束后才能对数据库存取。在多用户共享系统中,如果多个用户同时对同一数据进行操作称为并发操作。可能会互相干扰,破坏了事务的隔离性。第22页/共96页1、丢失更新问题时间更新事务T1数据库中A的值更新

10、事务T21502 read(A)read(A)34A:=A-15A:=A*26write(A)740write(A)8100A值100,错误,第8步丢失了T1对数据库的更新操作。第23页/共96页2、不一致分析问题时间更新事务T1数据库中A的值读事务T31502 read(A)3read(A)4A:=A-105write(A)640在第6步时,由于T1已更新了A的值,此时T3使用的A值仍为50,因此造成了不一致。即读了过时的数据。第24页/共96页3、“脏数据”的读出时间更新事务T1数据库中A的值读事务T41502 read(A)3A:=A-104write(A)540read(A)6ROLL

11、BACK750数据库中A的值被恢复为50,事务T4读出的A的值为40,未提交随后又被撤销的数据称为“脏数据”。第25页/共96页并发控制需要靠数据库的并发控制子系统来解决。如时间更新事务T1数据库中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的写操作冲掉。第26页/共96页7.2.2 排它型锁(X封锁)封

12、锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用。并发控制的基本方法就是封锁。数据的互斥访问当某事务访问某数据项时,其他任何事务均不得修改该数据项对访问的数据项加锁不同的加锁方式,产生不同的隔离层次,导致不同的一致性结果,获得不同的并发度第27页/共96页7.2.2 排它型锁(X封锁)封锁的类型排它锁(X锁,eXclusive lock):事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁。共享锁(S锁,Share lock):事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,而对R的S锁请求可以成功。第28页

13、/共96页、X封锁和PX协议X封锁:事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁。PX协议:任何企图更新记录R的事务必须先执行LOCK X(R),以获得对它的寻址能力,并对它取得X封锁。第29页/共96页举例:时间更新事务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先对

14、A封锁,写回新的A值后,T1执行解除封锁操作,并对A进行修改。这个过程能得到正确结果。第30页/共96页7.2.2 排它型锁(X封锁)对于删除操作,PX协议同样适用。要删除一个记录,首先也要执行LOCK(X)操作和read操作后才能删除。对于插入操作,就不需要读记录,因此,可以假定“INSERT T”本包含了对新插入记录R的X封锁。第31页/共96页2、并发事务的可串行化多个事务可能同时(交叉地)在系统中运行提高处理器、磁盘的利用率减少等待时间多个事务并发运行,由事务管理器进行调度可串行化调度并发运行的结果,与事务按某一顺序串行运行的结果等同举例:图7.中第32页/共96页3、由事务的ROLL

15、BACK引起的丢失更新问题时间更新事务T1数据库中A的值更新事务T21502LOCK X(A)3read(A)4A:=A-105write(A)6UNLOCK(A)407LOCK X(A)8read(A)9A:=A*210write(A)1180UNLOCK(A)12COMMIT13ROLLBACK1450第33页/共96页上图中的情况不可原谅,因为此时数据库中A的值是错的。为了避免数据库恢复恢复时丢失更新时丢失更新,就不应该允许事务去使用一个未提交的修改。PXC协议由PX协议和下面一条规则组成:“X封锁必须保留到事务终点(COMMIT ROLLBACK)”第34页/共96页7.2.3 活锁与

16、死锁当多个事务请求封锁同一数据对象时,有可能出现锁的异常活锁多个事务申请对数据R加锁,而系统随机地加锁,导致某些事务长等活锁策略设定系统按事务申请锁的时间顺序进行排队第35页/共96页7.2.3 活锁与死锁第36页/共96页7.2.3 活锁与死锁死锁两个(或多个)事务互相申请对方加锁对象的排它锁,造成循环等待TTR2R1第37页/共96页7.2.3 活锁与死锁预防一次加锁法事务一次性对需要的数据进行加锁?降低了系统的并发性,数据的不可预见性顺序加锁法估算需要的锁,对系统中的锁设定一个加锁顺序,所有事务均按照该顺序进行加锁?很难估算死锁几乎无法避免,允许死锁的发生,对其进行诊断和解除第38页/共

17、96页7.2.3 活锁与死锁诊断超时法设定时限,超过即为死锁等待图法回路即为死锁解除杀死时间戳代价最小第39页/共96页7.2.4 共享型封锁(S封锁)共享锁(S锁,Share lock):事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,而对R的S锁请求可以成功。相容矩阵:T2T1XSXNNYSNYYYYY第40页/共96页时间事务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

18、)12A:=A+1013write(A)1450,50,20COMMIT15read(C)16Sum:=Sum+C50第41页/共96页时间事务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第42页/共96页PS协议的主要内容如下:任何要更新记录R的操作必须先执行LOCK(R)操作,以获得

19、对该记录寻址的能力并对它取得S封锁。如果未获准S封锁,那么这个事务进入等待状态,一直到获准S封锁,事务才继续做下去。当事务获准对记录R的S封锁后,在记录R的修改前必须把S的封锁升级为X封锁。像PXC协议一样,也有一个PSC协议。PSC协议是在PS协议基础上再增加一条规则:S封锁要保持到事务终点。第43页/共96页举例:时间更新事务T1更新事务T21LOCK S(A)2LOCK S(A)3 read(A)4read(A)5A:=A-106A:=A*27UPGRADE(A)8waitUPGRADE(A)9waitwait在第9步发生死锁,此时系统挑一个事务牺牲,撤销并恢复到初始状态。第44页/共9

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

21、可串行化的。第46页/共96页示例lock-S(A)lock-S(B)lock-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)第47页/共96页2

22、、两段封锁法和可串行化调度的关系如果所有事务都是两段式的,那么它们的并发调度是可串行化的。两段式封锁是可串行化的充分条件,但不是必要条件。第48页/共96页举例:时间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第49页/共96页时间T9(H:=F+1)数据库中F

23、GH的值T10(F:=G+1)10,0,02LOCK S(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第50页/共96页7.3 数据库的完整性数据库中的完整性是指数据的正确性和相容性完整性约束保证了授权用户对数据库的修改不会导致数据一致性的破坏一致性是指满足所有已知的完整性约束第51页/共96页7.3 数据库的完整性在SQL中,表达完整性约束的规则

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

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

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

27、执行删除。CASCADE:将依赖关系中所有外键值与基本关系中要修改的主键值相对应的原则一起删除。SET NULL:修改基本关系的主键值时,将依赖关系中所有与基本关系中要修改的主键值相对应的外键值置为空值。第61页/共96页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),cname char(30),c

28、redit smallint,Primary Key(cno)完整性约束DDL第62页/共96页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第63页/共96页、非空值约束如果我们要求某个属性的值不允

29、许为空值时,那么可在属性定义属性后加上关键字:“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)第66页/共96页)基于元组的检查子句问题:CREATE TABLE SC(S#CHAR(4),C#CHAR(4),GRADE SMALLINT,PRIMARY KEY(S#,C#),CHECK(S#IN(SELECT S#FROM S),CHECK(C#IN(S

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

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

32、(Assertion)第70页/共96页)约束的命名:为了便于对约束进行操作,需要为每个约束起个名字。举例: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)第74页/共96页4)断言的撤消DROP ASSERTION ASSE1,ASSE2第75页/共96页练习:DEPT(DNO,DNAME,MGR-NO)T(TNO,TNAME,AGE,SEX,SALARY,DNO)TC(TNO,CNO

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

34、XTBOOK)C(CNO,CNAME,DNO)第78页/共96页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,SEX,SALARY,DNO)TC(TNO,CNO,TEXTBOOK)C(CNO,CNAME,DNO)第79页/共96页7.4 数据库的安

35、全性7.4.1 安全性级别安全性:是指保护数据库,以防止不合法的使用所造成的数据泄露、更改或破坏。数据库系统中大量数据集中存放,许多用户直接共享。系统安全保护措施是否有效是数据库系统的主要性能指标之一。从数据库角度:自然环境安全性:防治自然环境的破坏系统安全性:使指控制用户不得作任何未经授权的事。第80页/共96页7.4.1 安全性级别为了保护数据库,防止恶意的滥用,可以从以下几方面设置各种安全措施:1、环境级2、职员级3、OS级4、网络级5、数据库系统级第81页/共96页7.4.2 权限用户(或应用程序)实用数据库的方式称为权限,有下面几种:读权限插入权限修改权限删除权限在具体实用时,可根据

36、需要授给用户上述权限中的一个或多个,也可以不授予任何一个权限。第82页/共96页7.4.2 权限除了访问数据的权限,系统还提供给用户修改数据库模式的权限:1、索引权限:允许用户创建和删除数据库模式的权限2、资源权限:允许用创建新的关系。3、修改权限:允许用户在关系结构中加入或删除属性。4、撤消权限:允许用户撤消关系。第83页/共96页7.4.3 权限的转授和回收数据库系统允许用户把已获得的权限再转授给其它用户,也允许把已授给其它用户的权限再回收上来,但应保证转授出去的权限能收得回来。用权限图来表示权限转让关系。第84页/共96页7.4.3 权限的转授和回收在权限图中,结点是用户,用户为DBA的

37、结点称为根结点。图中一条有向边UiUj表示用户Ui把某权限转授给用户Uj。第85页/共96页7.4.3 权限的转授和回收 表示DBA把某权限授给用户U1,U2,U3。U1又把权限转授给用户U4和U5,U2把权限转授给U5。第86页/共96页7.4.3 权限的转授和回收 如果如果DBADBA决定收决定收回用户回用户U1U1的权限,的权限,则则U4U4的权限也被的权限也被回收。由于回收。由于U5U5的的权限是从权限是从U1U1和和U2U2两处得到,因此两处得到,因此回收回收U1U1的权限时,的权限时,还不能回收还不能回收U5U5的的权限。只有同时权限。只有同时也回收也回收U2U2的权限的权限时,时

38、,U5U5的权限才的权限才回收。回收。第87页/共96页7.4.4 SQL中的安全性控制SQLSQL中的两个功能提供了安全性:一是视图机制,它可以中的两个功能提供了安全性:一是视图机制,它可以用来对无权用户屏蔽数据。二是授权子系统,它允许有特用来对无权用户屏蔽数据。二是授权子系统,它允许有特定存储权的用户有选择地和动态地把这些权限授予其它用定存储权的用户有选择地和动态地把这些权限授予其它用户。户。(1 1)视图)视图视图是从一个护几个基本表导出的表,某个用户可以定义若干视图。它是虚表,数据库中只存放了它的定义。视图机制使系统有三个优点:数据安全性、数据独立性和操作简便性。对于某个用户,只能接触

39、到提供给它的视图所定义的数据部分,不允许该用户操作的数据将被隔离在该视图所能引用的数据之外。第88页/共96页7.4.4 SQL中的安全性控制2、SQL2中的用户权限及其操作1 1)用户权限:)用户权限:用户权限是指不同的用户对不同的数据对象允许执行的操作权限SQL2定义了六种权限供用户选择使用:SELECT INSERTDELETE UPDATEREFERENCES USAGE第89页/共96页2 2、SQL2SQL2中的用户权限及其操作中的用户权限及其操作2 2)授权语句:)授权语句:对于存取权限的定义称为授权.这些定义经过编译后存储在数据字典中,当用户发出存取数据库的操作请求后,DBMS

40、查找数据字典,然后根据用户存取权限进性合法权检查。授予其它用户使用关系和视图的权限的语句格式为:GRANT ON TO WITH GRANT OPTION第90页/共96页2 2、SQL2SQL2中的用户权限及其操作中的用户权限及其操作3 3)回收语句)回收语句如果用户Ui已经将权限P授予其它用户,那么用户Ui也可以用回收语句REVOKE从其他用户回收权限P。回收语句格式如下:REVOKE ON FROM RESTRICT|CASCADE语句中带CASCADE,表示回收权限时要引起连锁回收。即用户Ui从用户Uj回收权限时,要把用户Uj转授出去的同样的权限同时回收。如果语句中带RESTRICT,

41、则当不存在连锁回收现象时,才能回收权限,否则系统拒绝回收。第91页/共96页7.4.5 数据加密法数据库中的数据以密码形式存放,使用时由用户设计的解码程序将其转换成用户可读的数据。这样,数据库中的数据即使被窃取,也只能是一些无法辨认的代码。举例:设源文是CHEMIST AND PHYSICIST,加密键是LIGHT,具体的加密算法操作步骤为:1、把源文分成等长的块,每块的长度和加密键的长度一样,空格用b表示:CHEMI STbAN DbPHY SICIS Tbbbb2、对源文的每个字符用0-26中一个整数替换,b00,A=01,Z=26:0308051309 1920000114 040016

42、0825 1909030919 2000000000第92页/共96页7.4.5 数据加密法3、对LIGHT作同样的替换,替换为1209078204、对每块源文的每个字符的整数码和加密键相应字符的整数码以27为模相加。0308051309120907082019200001141209070820040016082512090708201909030919120907082020000000001209070820151712210204020709071609231618041810171205090708205、再用相应字符代替上一步中的整数码,得到密码文:OQLUB DBGIG PIWPR DRJQL EIGHT第93页/共96页7.4.5 数据加密法 举例:设p3,q5,则r15,(p1)(q1)8,设e11,从(d11)mod 81求得d3。则加密键e11,解密键d3。如果源文p13,那么密文从可从下式获得:C=pe mod r=1311 mod 15=1792160394037 mod 15=7从密码文7可用下式求得源文p:P=cd mod r=73 mod 15=343 mod 15=13第94页/共96页7.4.6 自然环境的安全性自然环境的安全性主要指数据库系统的设备、硬件和环境的安全性。第95页/共96页感谢您的欣赏!第96页/共96页

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

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁