第六章 数据库保护技术_第1页
第六章 数据库保护技术_第2页
第六章 数据库保护技术_第3页
第六章 数据库保护技术_第4页
第六章 数据库保护技术_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理第六章数据库保护技术6.1数据库安全性控制6.2数据库完整性控制6.3数据库并发控制6.4数据库恢复技术6.1数据库安全性控制

问题的提出数据库的一大特点是数据可以共享数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享3数据库安全性6.1数据库安全性控制数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。计算机系统中,安全措施是一级一级层层设置 4计算机系统的安全模型6.1数据库安全性控制常用方法用户标识和鉴定存取控制视图审计56.1数据库安全性控制6.1.1用户标识与鉴别6.1.2存取控制6.2.3视图6.2.4审计66.1.1用户标识与鉴别用户标识与鉴别(Identification&Authentication)系统提供的最外层安全保护措施7用户标识与鉴别(续)用户标识用输入用户名(用户标识号)来标明用户身份。口令系统核对口令以鉴别用户身份用户名和口令易被窃取每个用户预先约定好一个计算过程或者函数86.1数据库安全性控制6.1.1用户标识与鉴别6.1.2存取控制6.2.3视图6.2.4审计96.1.2存取控制存取控制在数据库系统中用户只能访问其有权访问的数据存取控制机制组成定义用户权限合法权限检查

用户权限定义和合法权检查机制一起组成了DBMS的安全子系统10存取控制(续)常用存取控制方法:自主存取控制、强制存取控制自主存取控制(DiscretionaryAccessControl,简称DAC):用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的存取权限转授给其它用户灵活强制存取控制(MandatoryAccessControl,简称MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证,对任意一个对象,只有具有合法许可证的用户才可以存取严格116.1.2存取控制6.1.2.1自主存取控制方法6.1.2.2授权与回收6.1.2.3强制存取控制方法126.1.2.1自主存取控制方法自主存取控制(DiscretionaryAccessControl,简称DAC)用户对不同的数据库对象有不同存取权限,不同用户对同一对象也有不同权限,且用户可将其拥有的存取权限转授给其它用户灵活DAC机制用户权限组成授权与回收136.1.2.1自主存取控制方法用户权限组成数据对象操作类型授权:定义存取权限定义用户可以在哪些数据库对象上进行哪些类型的操作授权与回收通过SQL的GRANT语句和REVOKE语句实现14自主存取控制方法(续)关系数据库系统中存取控制对象对象类型对象操作类型基本表CREATETABLE,ALTERTABLE模式视图CREATEVIEW索引CREATEINDEX数据基本表和视图SELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGES数据属性列SELECT,INSERT,UPDATE,ALLPRIVILEGES15关系数据库系统中的存取权限6.1.2存取控制6.1.2.1自主存取控制方法6.1.2.2授权与回收6.1.2.3强制存取控制方法166.1.2.2授权与回收一、GRANTGRANT语句的一般格式:

GRANT<权限>[,<权限>]...

[ON<对象名>]

TO<用户>[,<用户>]...[WITHGRANTOPTION];语义:将对指定操作对象的指定操作权限授予指定的用户17GRANT(续)发出GRANTDBA数据库对象创建者(即属主Owner)拥有该权限的用户接受权限的用户

一个或多个具体用户PUBLIC(全体用户)18WITHGRANTOPTION子句WITHGRANTOPTION子句:指定:可以再授予没有指定:不能传播不允许循环授权19GRANT举例把查询Student表权限授给用户U1GRANTSELECTONStudentTOU1 WITHGRANTOPTION;20授权与回收(续)二、REVOKE授予的权限可以由DBA或其他授权者用REVOKE语句收回REVOKE语句的一般格式为:

REVOKE<权限>[,<权限>]...

[ON<对象名>]FROM<用户>[,<用户>]...;21REVOKE(续)把用户U1查询学生表的权限收回

REVOKESELECT ONStudent FROMU1;22小结:SQL灵活的授权机制DBA:拥有所有对象的所有权限不同的权限授予不同的用户用户:拥有自己建立的对象的全部的操作权限GRANT:授予其他用户被授权的用户“继续授权”许可:再授予所有授予出去的权力在必要时又都可用REVOKE语句收回236.1.2存取控制6.1.2.1自主存取控制方法6.1.2.2授权与回收6.1.2.3强制存取控制方法24自主存取控制缺点存在问题可能存在数据的“无意泄露”主要原因自主存取控制机制仅仅通过对数据的存取权限进行安全控制,而数据本身并无安全性标记解决方法对系统控制下的所有主客体实施强制存取控制策略256.1.2.3强制存取控制方法强制存取控制(MandatoryAccessControl,简称MAC)每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证,对任意一个对象,只有具有合法许可证的用户才可以存取严格强制存取控制MAC特点对系统控制下的所有主客体实施强制存取控制策略不是用户能直接感知或进行控制,保证更高程度的安全性适用对数据有严格而固定密级分类部门:军事、政府26强制存取控制方法(续)主体:系统中的活动实体DBMS所管理的实际用户代表用户的各进程客体:系统中的被动实体,是受主体操纵的文件基表索引视图27强制存取控制方法(续)敏感度标记(Label)绝密(TopSecret)机密(Secret)可信(Confidential)公开(Public)主体的敏感度标记称为许可证级别(ClearanceLevel)客体的敏感度标记称为密级(ClassificationLevel)28强制存取控制方法(续)强制存取控制规则仅当主体许可证级别大于或等于客体密级时,主体才能读取相应客体仅当主体许可证级别等于客体密级时,主体才能写相应客体被写入的客体也就具有了与许可证对等的密级29MAC与DACDBMS安全机制:DAC+MAC实现MAC时要首先实现DAC原因:较高安全性级别提供的安全保护要包含较低级别的所有保护30强制存取控制方法(续)DAC+MAC安全检查示意图31先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取DAC检查继续语义检查安全检查SQL语法分析&语义检查MAC检查6.1数据库安全性控制6.1.1用户标识与鉴别6.1.2存取控制6.1.3视图6.1.4审计326.1.3视图视图机制为不同的用户定义不同的视图,通过视图把数据对象限制在一定范围内,把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。33视图机制(续)建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明

先立计算机系学生的视图

计算机系_学生CREATEVIEW计算机系_学生ASSELECT*FROM学生WHERE所在系=‘计算机系';34视图机制(续)在视图上进一步定义存取权限

GRANTSELECTON计算机系_学生

TO王平;

GRANTALLPRIVILGESON计算机系_学生

TO张明;356.1数据库安全性控制6.1.1用户标识与鉴别6.1.2存取控制6.1.3视图6.1.4审计366.1.4审计审计审计日志(AuditLog):将用户对数据库的所有操作记录在上面(日志文件)一旦发生数据被非法存取,DBA利用审计日志:找出非法存取数据的人、时间和内容审计需要在时间和空间上付出巨大的代价37第六章数据库保护技术6.1数据库安全性控制6.2数据库完整性控制6.3数据库并发控制6.4数据库恢复技术6.2数据库完整性控制数据的完整性数据的正确性和相容性

学生的学号必须唯一性别只能是男或女本科学生年龄的取值范围为14~50的整数学生所选的课程必须是学校开设的课程学生所在的院系必须是学校已成立的院系要求用户在数据库中添加或修改数据时必须保证一定的约束条件396.2数据库完整性控制为维护数据库的完整性,DBMS必须:1.提供定义完整性约束条件的机制2.提供完整性检查的方法3.违约处理40数据库完整性控制完整性检查是围绕完整性约束条件进行的,因此,完整性约束条件是完整性控制机制的核心。数据完整性约束可以分为:属性级约束,针对列的类型、取值范围、精度、排序等而制定的约束条件。元组级约束,元组中的字段组和字段间联系的约束;表级约束,若干元组间、关系之间联系的约束;41数据库完整性控制完整性控制机制应具有的功能1)定义完整性功能,提供定义完整性约束条件的机制。2)检查完整性功能,检查用户发出的操作请求,看其是否违背了完整性约束条件。3)控制完整性功能,监视数据操作的整个过程,如果发现有违背了完整性约束条件的情况,则采取一定的动作来保证数据的完整性。在完整性控制技术中,当违反完整性约束时,一般的处理方法是拒绝导致破坏完整性的操作。42数据库完整性控制用附加操作来对参照完整性的处理在被参照关系中删除元组的问题受限删除:仅当外码表中没有任何元组的外码值与主码表中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作。级联删除:将外码表中所有外码值与主码表中要删除的元组主码值相同的元组一起删除。如果外码表同时又是另一个关系的主码表,则这种删除操作会继续级联下去。置空值删除:删除主码表的元组,并将外码表中相应元组的外码值置空值。43数据库完整性控制在被参照关系中修改元组的问题受限修改。如果外码表中,有外码值与主码表中要修改的主码值相同的元组,则拒绝修改。级联修改。如果要修改主码表中的某个元组的主码值,则外码表中相应的外码值也作相应的修改。置空值修改。修改主码表的元组,并将外码表中相应元组的外码值置空值。44第六章数据库保护技术6.1数据库安全性控制6.2数据库完整性控制6.3数据库并发控制6.4数据库恢复技术问题的产生多用户数据库系统的存在允许多个用户同时使用的数据库系统6.3数据库并发控制并发控制:控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。事务:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。在SQL语言中,定义事务的语句有三条:

BEGINTRANSACTION;

COMMIT;

ROLLBACK;476.3数据库并发控制事务的四个特性成为ACID特性:执行的原子性(Atomicity):一个事务中所有对数据库的操作是一个不可分割的操作序列。这些操作要么全部执行,要么全部不执行结果的一致性(Consistency):事务执行的结果必须是使得数据库从一个一致性状态变到另一个一致性状态彼此的隔离性(Isolation):多个事务并发执行的时候,各个事务应该像独立执行一样,而不受其他事务的干扰作用的持久性(Durability):一个事务一旦完成其全部操作,它对数据库的所有更新应该永久得反映在数据库中6.3数据库并发控制ACID特性在下面两种情况下可能遭到破坏多个事务并发执行时,各自的操作交叉执行事务在运行过程中被强行停止6.3数据库并发控制并发操作带来的数据不一致性丢失修改(LostUpdate)读“脏”数据(DirtyRead)不可重复读(Non-repeatableRead)记号R(x):读数据xW(x):写数据x1.丢失修改两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。丢失修改(续)T1T2①R(A)=16②R(A)=16③A←A-2④A←A-1W(A)=14W(A)=15丢失修改2.不可重复读不可重复读是指事务T1读取数据后,事务T2

执行更新操作,使T1无法再现前一次读取结果。不可重复读(续)T1读取B=100进行运算T2读取同一数据B,对其进行修改后将B=200写回数据库。T1为了对读取值校对重读B,B已为200,与第一次读取值不一致T1T2①R(A)=50R(B)=100求和=150②R(B)=100B←B*2W(B)=200③R(A)=50R(B)=200和=250(验算不对)不可重复读例如:3.读“脏”数据

读“脏”数据是指:事务T1修改某一数据,并将其写回磁盘事务T2读取同一数据后,T1由于某种原因被撤销这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致T2读到的数据就为“脏”数据,即不正确的数据读“脏”数据(续)T1T2①R(C)=100C←C*2W(C)=200②R(C)=200③ROLLBACKC恢复为100例如读“脏”数据T1将C值修改为200,T2读到C为200T1由于某种原因撤销,其修改作废,C恢复原值100这时T2读到的C为200,与数据库内容不一致,就是“脏”数据

并发控制概述(续)数据不一致性:由于并发操作破坏了事务的隔离性并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性并发控制概述(续)并发控制的主要技术封锁(Locking)时间戳(Timestamp)乐观控制法封锁什么是封锁基本封锁类型锁的相容矩阵什么是封锁封锁就是事务T在对某个数据对象(例如表、记录等

温馨提示

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

评论

0/150

提交评论