ch7数据库的安全与控制_第1页
ch7数据库的安全与控制_第2页
ch7数据库的安全与控制_第3页
ch7数据库的安全与控制_第4页
ch7数据库的安全与控制_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第7章:数据库的安全与控制数据库的安全数据库访问权限AuthorizationSQL中的访问权限AuthorizationinSQL事务transaction并发控制ConcurrencyControl数据库恢复RecoverySystem§1数据库的安全性1.1什么是数据库的安全性?指:保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。数据库应用系统的安全模型文件操作控制存取控制身份验证用户数据库应用程序数据库管理系统操作系统加密存储与冗余数据库(1)用户身份的标识和鉴定。(2)存取权限控制。(3)定义并使用视图。(4)审计制度。(5)数据加密。

1.2安全性控制的一般方法1.3存取权限基本类型存取数据的权限类型:读取Readauthorization-allowsreading,butnotmodificationofdata.插入Insertauthorization-allowsinsertionofnewdata,butnotmodificationofexistingdata.更新Updateauthorization-allowsmodification,butnotdeletionofdata.删除Deleteauthorization-allowsdeletionofdata数据的存取权限可以由一个用户传递给另一个用户,并用授权图来表达.授权图中的每一个节点代表一个用户.

根节点是数据库的管理员DBA.U1U4U2U5U3DBA授权图中的每一条边必须与根节点相连DBA授予或收回其它用户存取权限,具有授权能力的用户也可以向别的用户授予/收回权力SQL中是通过GRANT和REVOKE语句进行授权.SQL授权语句的格式:GRANT<权限表>ON<关系名或视图名>

TO

<用户表>[WITHGRANTOPTION]用户表:用户的ID,或角色等权限表:select,insert,update,delete…..1.4SQL中的授权语句具有授予别人权限的能力

e.gStudent的owner向User1,User2授插入和选择数据的权限,同时User1,User2也可以将该权限授予其它用户。(1)GRANTSELECT,INSERTONStudentTOUser1,User2WITHGRANTOPTIONownerSELECTStudent**ownerINSERTStudent**user1SELECTStudent*user1INSERTStudent*user2SELECTStudent*user2INSERTStudent*user3SELECTStudent

E.gUser1向User3授权对Student表的选择权,但User3不能将该权限授予其它用户。TOUser3GRANTSELECTONStudent

E.g.owner用REVOKE语句,从User1收回权限REVOKEINSERTONStudent

FROM

User1

CASCADE收回权限的语句格式:REVOKE<权限表>ON<关系或视图>

FROM<用户表>[CASCADE]

E.g.owner用REVOKE语句,从User2收回授予权限的权力。REVOKEGRANTOPTION

FORSELECT

ONStudentFROMUser2CASCADESQL授权语句的局限性SQL不支持元组级别的权限控制E.g.wecannotrestrictstudentstoseeonly(thetuplesstoring)theirowngradesWiththegrowthinWebaccesstodatabases,databaseaccessescomeprimarilyfromapplicationservers.Endusersdon'thavedatabaseuserids,theyareallmappedtothesamedatabaseuseridAllend-usersofanapplication(suchasawebapplication)maybemappedtoasingledatabaseuserThetaskofauthorizationinabovecasesfallsontheapplicationprogram,withnosupportfromSQLBenefit:finegrainedauthorizations,suchastoindividualtuples,canbeimplementedbytheapplication.Drawback:Authorizationmustbedoneinapplicationcode,andmaybedispersedalloveranapplicationCheckingforabsenceofauthorizationloopholesbecomesverydifficultsinceitrequiresreadinglargeamountsofapplicationcodeSQL授权语句的局限性Cont.§2事务管理:事务是访问并可能更新数据库数据的一个程序执行单位。2.1事务概念即,事务中导致数据库状态改变的操作,要么全部成功地执行完毕,要么都不执行。

事务的性质(ACID)(1)原子性(Atomicity):组成事务的操作的不可分割性。

(2)一致性(Consistency):一个事务必须是一个正确的程序,它使数据库从一个一致状态转变为另一个一致状态.(4)持久性(Durability):一旦某个事务已经提交,即使系统发生故障,也不能丢失该事务的执行结果。

(3)隔离性(Isolation):一个正在执行的事务在提交之前,不允许把它对共享数据所做的改变,提交给其它事务使用。

BEGINTRANSACTIONselect……update…….…….

COMMIT

BEGINTRANSACTIONdelete……insert…….…….

ROLLBACK§3事务的并发操作3.1.什么叫并发:多个事务同时存取相同的数据.3.2.并发带来的问题---数据一致性问题事务A事务Bt1t2t3t4时间读数据D读数据D修改数据D修改数据D?(1)丢失修改t1t2t3t4时间读数据D事务A事务B读数据D?修改数据D事务回退(2)读入“脏”数据(3)不可重复的读t1t2t3t4时间读数据D事务A事务B读数据D读数据D?修改数据D3.3.并发控制机制之一:封锁locking锁的类型:排它锁(X):拒绝其它事务任何类型的锁请求,也叫写锁。共享锁(S):拒绝其它事务的X锁请求,但允许其它事务的S锁请求,也叫读锁。锁请求的相容性(矩阵)事务A事务BXSXNNSNY

3.4.三级锁协议---解决数据一致性问题(1).一级锁协议---解决“丢失修改”问题事务在修改数据D之前,必须先对其加X锁,直到事务结束(提交或回退)才释放该锁。事务A事务Bt1t2t3t4时间读数据D读数据D修改数据D修改数据D?t5加X锁!开锁!加X锁?(2).二级锁协议---解决“读脏数据”问题在一级锁协议的基础上,加上约定:事务T在读取数据D之前,必须对其加S锁,读入该数据后即可立即释放S锁。事务A事务Bt1t2t3t6时间读数据D读数据D?修改数据D事务回退t5t4加X锁!开锁!加S锁?

(3).三级锁协议---解决“不可重复读”问题在一级锁协议的基础上,加上约定:事务T在读取数据D之前,必须对其加S锁,直到事务结束(提交或回退)才能释放S锁。加X锁?事务A事务Bt1t2t3t4时间读数据D读数据D读数据D?修改数据Dt5t6开锁!加S锁!

(4)并发调度的可串行性如果多个事务的并发调度执行过程的结果,与它们的一个串行执行过程产生的结果相同,则称并发调度是可串行化的。(5)两阶段锁协议:每个事务分两个阶段提出锁操作获得锁阶段:任何事务可以申请获得锁,但不能释放锁。释放锁阶段:任何事务可以申请释放锁,但不能获得新锁。如果所有的事务都遵守“两段锁协议”,则这些事务是可串行化的。

3.5.SQL标准的隔离性级别隔离性级别指:多个事务并发执行时,一个事务所能容忍干扰的程度。1.SERIALIZABLE(可串行化)-------缺省值4.REPEATABLEREAD(只允许可重复的读)3.READCOMMITTED(禁止读“脏”数据,但允许不可重复的读)2.READUNCOMMITTED(允许读“脏”数据)恢复数据库是指将数据库从错误描述状态恢复到正确的描述状态(最近的正确时刻)的过程。

1.恢复策略

(1)事务故障的恢复

事务故障是指事务在运行到正常结束前被终止,这时恢复子系统可以利用日志文件撤消(Undo)此事务对数据库已进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。恢复的过程为:反向扫描日志文件并执行相应操作的逆操作。 §4数据库的恢复(自学)(2)系统故障的恢复:系统软件故障或突然断电等系统故障造成数据库不一致状态的原因有两个,一个是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区中未写入数据库。系统故障的恢复是系统在重启时自动完成的,不需用户干预。

恢复过程为:正向扫描日志文件,找

温馨提示

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

最新文档

评论

0/150

提交评论