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

下载本文档

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

文档简介

1、数据库原理第六章 数据库保护技术 6.1 数据库安全性控制数据库安全性控制6.2 数据库完整性控制数据库完整性控制6.3 数据库并发控制数据库并发控制6.4 数据库恢复技术数据库恢复技术 6.1 数据库安全性控制 问题的提出问题的提出数据库的一大特点是数据可以共享数据库的一大特点是数据可以共享数据共享必然带来数据库的安全性问题数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享数据库系统中的数据共享不能是无条件的共享3数据库安全性数据库安全性6.1 数据库安全性控制数据库的安全性是指保护数据库,以防止数据库的安全性是指保护数据库,以防止不合法不合法的的使用造成的数据泄密、

2、更改或破坏。使用造成的数据泄密、更改或破坏。计算机系统中,安全措施是一级一级层层设置计算机系统中,安全措施是一级一级层层设置4计算机系统的安全模型计算机系统的安全模型 6.1 数据库安全性控制常用方法常用方法用户标识和鉴定用户标识和鉴定存取控制存取控制视图视图审计审计56.1 数据库安全性控制6.1.1 用户标识与鉴别用户标识与鉴别6.1.2 存取控制存取控制6.2.3 视图视图6.2.4 审计审计66.1.1 用户标识与鉴别用户标识与鉴别用户标识与鉴别 (Identification & Authentication)系统提供的最外层安全保护措施系统提供的最外层安全保护措施7用户标识

3、与鉴别(续)用户标识用户标识用输入用户名(用户标识号)来标明用户身份。用输入用户名(用户标识号)来标明用户身份。口令口令系统核对口令以鉴别用户身份系统核对口令以鉴别用户身份 用户名和口令易被窃取用户名和口令易被窃取n每个用户预先约定好一个每个用户预先约定好一个计算过程计算过程或者或者函数函数86.1 数据库安全性控制6.1.1 用户标识与鉴别用户标识与鉴别6.1.2 存取控制存取控制6.2.3 视图视图6.2.4 审计审计96.1.2 存取控制存取控制存取控制在数据库系统中用户只能访问其有权访问的数据在数据库系统中用户只能访问其有权访问的数据存取控制机制存取控制机制组成组成定义用户权限定义用户

4、权限合法权限检查合法权限检查 用户权限定义和合法权检查机制一起组成了用户权限定义和合法权检查机制一起组成了 DBMS的的安全子系统安全子系统10存取控制(续)常用存取控制方法:常用存取控制方法:自主存取控制、强制存取控制自主存取控制、强制存取控制自主存取控制自主存取控制(Discretionary Access Control,简称简称DAC):用:用户对于不同的数据库对象有不同的存取权限户对于不同的数据库对象有不同的存取权限, 不同的用户对同不同的用户对同一对象也有不同的权限一对象也有不同的权限, 而且用户还可以将其拥有的存取权限而且用户还可以将其拥有的存取权限转授给其它用户转授给其它用户灵

5、活灵活强制存取控制强制存取控制(Mandatory Access Control,简称简称 MAC):每一:每一个数据库对象被标以一定的密级个数据库对象被标以一定的密级, 每一个用户也被授予某一个每一个用户也被授予某一个级别的许可证级别的许可证, 对任意一个对象对任意一个对象,只有具有合法许可证的用户才只有具有合法许可证的用户才可以存取可以存取严格严格116.1.2 存取控制6.1.2.1 自主存取控制方法自主存取控制方法6.1.2.2 授权与回收授权与回收6.1.2.3 强制存取控制方法强制存取控制方法126.1.2.1 自主存取控制方法自主存取控制自主存取控制(Discretionary

6、Access Control,简简称称DAC)用户对不同的数据库对象有不同存取权限用户对不同的数据库对象有不同存取权限, 不同用户对同一不同用户对同一对象也有不同权限对象也有不同权限, 且用户可将其拥有的存取权限转授给其且用户可将其拥有的存取权限转授给其它用户它用户灵活灵活DAC机制机制用户权限组成用户权限组成授权授权与与回收回收136.1.2.1 自主存取控制方法用户权限组成用户权限组成数据对象数据对象操作类型操作类型授权:授权:定义存取权限定义存取权限定义用户可以在哪些数据库对象上进行哪些类型的操作定义用户可以在哪些数据库对象上进行哪些类型的操作授权授权与与回收回收通过通过SQL的的GRA

7、NT语句和语句和REVOKE语句实现语句实现14自主存取控制方法(续)关系数据库系统中存取控制对象关系数据库系统中存取控制对象 对象类型对象类型对象对象操操 作作 类类 型型基本表基本表CREATE TABLE,ALTER TABLE模式模式视图视图CREATE VIEW索引索引CREATE INDEX数据数据基本表和视图基本表和视图SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES数据数据属性列属性列SELECT,INSERT,UPDATE,ALL PRIVILEGES15关系数据库系统中的存取权限关系数据库系统中的存取权限 6.1.2 存取控制6.1.2.

8、1 自主存取控制方法自主存取控制方法6.1.2.2 授权与回收授权与回收6.1.2.3 强制存取控制方法强制存取控制方法166.1.2.2 授权与回收一、一、GRANTGRANT语句的一般格式:语句的一般格式: GRANT ,. ON TO ,. WITH GRANT OPTION;语义:将对指定操作对象的指定操作权限授予指定的用户语义:将对指定操作对象的指定操作权限授予指定的用户17GRANT(续)发出发出GRANTDBA数据库对象创建者(即属主数据库对象创建者(即属主Owner)拥有该权限的用户拥有该权限的用户接受权限的用户接受权限的用户 一个或多个具体用户一个或多个具体用户PUBLIC(

9、全体用户)(全体用户)18WITH GRANT OPTION子句WITH GRANT OPTION子句子句:指定:可以指定:可以再授予再授予没有指定:没有指定:不能传播不能传播不允许循环授权不允许循环授权19GRANT举例把查询把查询Student表权限授给用户表权限授给用户U1 GRANT SELECT ON Student TO U1WITH GRANT OPTION;20授权与回收(续)二、二、REVOKE授予的权限可以由授予的权限可以由DBA或其他授权者用或其他授权者用REVOKE语句收回语句收回REVOKE语句的一般格式为:语句的一般格式为: REVOKE ,. ON FROM ,.

10、;21REVOKE(续)把用户把用户U1查询学生表的权限收回查询学生表的权限收回REVOKE SELECTON Student FROM U1;22小结: SQL灵活的授权机制DBA:拥有所有对象的所有权限:拥有所有对象的所有权限不同的权限授予不同的用户不同的权限授予不同的用户用户用户:拥有自己建立的对象的全部的操作权限:拥有自己建立的对象的全部的操作权限GRANT:授予其他用户:授予其他用户被授权的用户被授权的用户“继续授权继续授权”许可:再授予许可:再授予所有授予出去的权力在必要时又都可用所有授予出去的权力在必要时又都可用REVOKE语句收语句收回回236.1.2 存取控制6.1.2.1

11、自主存取控制方法自主存取控制方法6.1.2.2 授权与回收授权与回收6.1.2.3 强制存取控制方法强制存取控制方法24自主存取控制缺点存在问题存在问题可能存在数据的可能存在数据的“无意泄露无意泄露”主要原因主要原因自主存取控制机制仅仅通过对数据的存取权限进行安自主存取控制机制仅仅通过对数据的存取权限进行安全控制,而数据本身并无安全性标记全控制,而数据本身并无安全性标记解决方法解决方法对系统控制下的对系统控制下的所有所有主主客客体实施强制存取控制策略体实施强制存取控制策略256.1.2.3 强制存取控制方法强制存取控制强制存取控制(Mandatory Access Control,简称简称 M

12、AC)每一个数据库对象被标以一定的密级每一个数据库对象被标以一定的密级, 每一个用户也被每一个用户也被授予某一个级别的许可证授予某一个级别的许可证, 对任意一个对象对任意一个对象, 只有具有只有具有合法许可证的用户才可以存取合法许可证的用户才可以存取严格严格强制存取控制强制存取控制MAC特点特点对系统控制下的对系统控制下的所有所有主主客客体体实施强制存取控制策略实施强制存取控制策略不是用户能直接感知或进行控制,保证更高程度的安不是用户能直接感知或进行控制,保证更高程度的安全性全性适用对数据有严格而固定密级分类部门:军事、政府适用对数据有严格而固定密级分类部门:军事、政府26强制存取控制方法(续

13、)主体:主体:系统中的活动实体系统中的活动实体DBMS所管理的实际用户所管理的实际用户代表用户的各进程代表用户的各进程客体:客体:系统中的被动实体,是受主体操纵的系统中的被动实体,是受主体操纵的文件文件基表基表索引索引视图视图27强制存取控制方法(续)敏感度标记敏感度标记(Label)绝密(绝密(Top Secret)机密(机密(Secret)可信(可信(Confidential)公开(公开(Public)主体主体的敏感度标记称为的敏感度标记称为许可证级别许可证级别(Clearance Level)客体客体的敏感度标记称为的敏感度标记称为密级密级(Classification Level)28

14、强制存取控制方法(续)强制存取控制规则强制存取控制规则仅当仅当主体许可证级别主体许可证级别大于或等于大于或等于客体密级客体密级时,主体才能时,主体才能读读取相应客体取相应客体仅当仅当主体许可证级别主体许可证级别等于等于客体密级客体密级时,主体才能时,主体才能写写相应相应客体客体被写入的客体也就具有了与许可证对等的密级被写入的客体也就具有了与许可证对等的密级29MAC与DACDBMS安全机制:安全机制:DAC + MAC实现实现MAC时要首先实现时要首先实现DAC原因:较高安全性级别提供的安全保护要包含较原因:较高安全性级别提供的安全保护要包含较低级别的所有保护低级别的所有保护30强制存取控制方

15、法(续)DAC + MAC安全检查示意图安全检查示意图31v 先进行先进行DAC检查,通过检查,通过DAC检查的数据对象再由系统进行检查的数据对象再由系统进行MAC检检查,只有通过查,只有通过MAC检查的数据对象方可存取检查的数据对象方可存取DAC 检检 查查继续语义检查继续语义检查安全检查安全检查SQL语法分析语法分析 & 语义检查语义检查MAC 检检 查查6.1 数据库安全性控制6.1.1 用户标识与鉴别用户标识与鉴别6.1.2 存取控制存取控制6.1.3 视图视图6.1.4 审计审计326.1.3 视图视图机制视图机制为不同的用户定义不同的视图,通过视图把数据对象限制在为不同的用

16、户定义不同的视图,通过视图把数据对象限制在一定范围内,把要保密的数据对无权存取的用户隐藏起来,一定范围内,把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。从而自动地对数据提供一定程度的安全保护。33视图机制(续)建立计算机系学生的视图,把对该视图的建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张权限授于王平,把该视图上的所有操作权限授于张明明 先立计算机系学生的视图先立计算机系学生的视图 计算机系计算机系_学生学生 CREATE VIEW 计算机系计算机系_学生学生 AS SELECT * FROM 学生学生 WHER

17、E 所在系所在系=计算机系计算机系;34视图机制(续)在视图上进一步定义存取权限在视图上进一步定义存取权限 GRANT SELECT ON 计算机系计算机系_学生学生 TO 王平王平 ; GRANT ALL PRIVILGES ON 计算机系计算机系_学生学生 TO 张明;张明; 356.1 数据库安全性控制6.1.1 用户标识与鉴别用户标识与鉴别6.1.2 存取控制存取控制6.1.3 视图视图6.1.4 审计审计366.1.4 审计审计审计审计日志审计日志(Audit Log): 将用户对数据库的所有操作将用户对数据库的所有操作记录在上面记录在上面(日志文件日志文件)一旦发生数据被非法存取,

18、一旦发生数据被非法存取,DBA利用审计日志利用审计日志: 找出找出非法存取数据的人、时间和内容非法存取数据的人、时间和内容审计需要在时间和空间上付出巨大的代价审计需要在时间和空间上付出巨大的代价37第六章 数据库保护技术6.1 数据库安全性控制数据库安全性控制6.2 数据库完整性控制数据库完整性控制6.3 数据库并发控制数据库并发控制6.4 数据库恢复技术数据库恢复技术6.2 数据库完整性控制数据的完整性数据的完整性数据的数据的正确性和相容性正确性和相容性 学生的学号必须唯一学生的学号必须唯一性别只能是男或女性别只能是男或女本科学生年龄的取值范围为本科学生年龄的取值范围为1450的整数的整数学

19、生所选的课程必须是学校开设的课程学生所选的课程必须是学校开设的课程学生所在的院系必须是学校已成立的院系学生所在的院系必须是学校已成立的院系要求用户在数据库中添加或修改数据时必须保要求用户在数据库中添加或修改数据时必须保证一定的约束条件证一定的约束条件396.2 数据库完整性控制为维护数据库的完整性,为维护数据库的完整性,DBMS必须:必须:n1.提供提供定义定义完整性约束条件的机制完整性约束条件的机制n2.提供完整性提供完整性检查检查的方法的方法n3.违约处理违约处理40数据库完整性控制完整性检查是围绕完整性约束条件进行的,因完整性检查是围绕完整性约束条件进行的,因此,完整性约束条件是完整性控

20、制机制的核心。此,完整性约束条件是完整性控制机制的核心。数据完整性约束可以分为:数据完整性约束可以分为:属性级约束,属性级约束,针对列的类型、取值范围、精度、排针对列的类型、取值范围、精度、排序等而制定的约束条件。序等而制定的约束条件。元组级约束,元组级约束,元组中的字段组和字段间联系的约束;元组中的字段组和字段间联系的约束;表级约束,表级约束,若干元组间、关系之间联系的约束;若干元组间、关系之间联系的约束;41数据库完整性控制完整性控制机制应具有的功能完整性控制机制应具有的功能1) 定义完整性功能,提供定义完整性约束条件的机制。定义完整性功能,提供定义完整性约束条件的机制。2) 检查完整性功

21、能,检查用户发出的操作请求,看其是否检查完整性功能,检查用户发出的操作请求,看其是否违背了完整性约束条件。违背了完整性约束条件。3) 控制完整性功能,监视数据操作的整个过程,如果发现控制完整性功能,监视数据操作的整个过程,如果发现有违背了完整性约束条件的情况,则采取一定的动作来保有违背了完整性约束条件的情况,则采取一定的动作来保证数据的完整性。证数据的完整性。在完整性控制技术中,当违反完整性约束时,一般的处理方法是拒在完整性控制技术中,当违反完整性约束时,一般的处理方法是拒绝导致破坏完整性的操作。绝导致破坏完整性的操作。42数据库完整性控制用附加操作来对参照完整性的处理用附加操作来对参照完整性

22、的处理在被参照关系中删除元组的问题在被参照关系中删除元组的问题受限删除:受限删除:仅当外码表中没有任何元组的外码值与主码表中要删除仅当外码表中没有任何元组的外码值与主码表中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作。元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作。级联删除:级联删除:将外码表中所有外码值与主码表中要删除的元组主码值将外码表中所有外码值与主码表中要删除的元组主码值相同的元组一起删除。如果外码表同时又是另一个关系的主码表,相同的元组一起删除。如果外码表同时又是另一个关系的主码表,则这种删除操作会继续级联下去。则这种删除操作会继续级联下去。置空值删除

23、:置空值删除:删除主码表的元组,并将外码表中相应元组的外码值删除主码表的元组,并将外码表中相应元组的外码值置空值。置空值。43数据库完整性控制在被参照关系中修改元组的问题在被参照关系中修改元组的问题受限修改。受限修改。如果外码表中,有外码值与主码表中要修改的主码值相如果外码表中,有外码值与主码表中要修改的主码值相同的元组,则拒绝修改。同的元组,则拒绝修改。级联修改。级联修改。如果要修改主码表中的某个元组的主码值,则外码表中如果要修改主码表中的某个元组的主码值,则外码表中相应的外码值也作相应的修改。相应的外码值也作相应的修改。置空值修改。置空值修改。修改主码表的元组,并将外码表中相应元组的外码值

24、修改主码表的元组,并将外码表中相应元组的外码值置空值。置空值。 44第六章 数据库保护技术6.1 数据库安全性控制数据库安全性控制6.2 数据库完整性控制数据库完整性控制6.3 数据库并发控制数据库并发控制6.4 数据库恢复技术数据库恢复技术问题的产生多用户数据库系统的存在多用户数据库系统的存在允许多个用户同时使用的数据库系统允许多个用户同时使用的数据库系统6.3 数据库并发控制并发控制:并发控制:控制数据库,防止多用户并发使用数据库时造成数据错误控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。和程序运行错误,保证数据的完整性。事务:事务:事务是用户定义的一

25、个数据库操作序列,这些操作要么全事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。做要么全不做,是一个不可分割的工作单位。在在SQL语言中,定义事务的语句有三条:语言中,定义事务的语句有三条: BEGIN TRANSACTION; COMMIT; ROLLBACK;476.3 数据库并发控制事务的四个特性成为事务的四个特性成为ACID特性特性:执行的原子性(执行的原子性(Atomicity):):一个事务中所有对数据库的一个事务中所有对数据库的操作是一个不可分割的操作序列。这些操作要么全部执行,操作是一个不可分割的操作序列。这些操作要么全部执行,要么全部

26、不执行要么全部不执行结果的一致性(结果的一致性(Consistency):):事务执行的结果必须是使事务执行的结果必须是使得数据库从一个一致性状态变到另一个一致性状态得数据库从一个一致性状态变到另一个一致性状态彼此的隔离性(彼此的隔离性(Isolation):):多个事务并发执行的时候,多个事务并发执行的时候,各个事务应该像独立执行一样,而不受其他事务的干扰各个事务应该像独立执行一样,而不受其他事务的干扰作用的持久性(作用的持久性(Durability):):一个事务一旦完成其全部一个事务一旦完成其全部操作,它对数据库的所有更新应该永久得反映在数据库中操作,它对数据库的所有更新应该永久得反映在

27、数据库中6.3 数据库并发控制ACID特性在下面两种情况下可能遭到破坏特性在下面两种情况下可能遭到破坏多个事务并发执行时,各自的操作交叉执行多个事务并发执行时,各自的操作交叉执行事务在运行过程中被强行停止事务在运行过程中被强行停止6.3 数据库并发控制并发操作带来的数据不一致性并发操作带来的数据不一致性丢失修改(丢失修改(Lost Update)读读“脏脏”数据(数据(Dirty Read)不可重复读(不可重复读(Non-repeatable Read)记号记号R(x):读数据读数据xW(x):写数据写数据x 1. 丢失修改两个事务两个事务T1和和T2读入同一数据并修改,读入同一数据并修改,T

28、2的的提交结果破坏了提交结果破坏了T1提交的结果,导致提交的结果,导致T1的修的修改被丢失。改被丢失。丢失修改(续)T1T2 R(A)=16R(A)=16 AA-2AA-1W(A)=14W(A)=15丢失修改丢失修改2. 不可重复读不可重复读是指事务不可重复读是指事务T1读取数据后,事务读取数据后,事务T2 执行更新操作,使执行更新操作,使T1无法再现前一次读取结无法再现前一次读取结果果。不可重复读(续)nT1读取读取B=100进行运算进行运算nT2读取同一数据读取同一数据B,对,对其进行修改后将其进行修改后将B=200写回数据库。写回数据库。nT1为了对读取值校对为了对读取值校对重读重读B,

29、B已为已为200,与,与第一次读取值不一致第一次读取值不一致 T1T2 R(A)=50 R(B)=100求和求和=150R(B)=100BB*2W(B)=200 R(A)=50R(B)=200和和=250(验算不对验算不对)不可重复读不可重复读 例如:例如:3. 读“脏”数据 读读“脏脏”数据是指:数据是指:事务事务T1修改某一数据,并将其写回磁盘修改某一数据,并将其写回磁盘事务事务T2读取同一数据后,读取同一数据后,T1由于某种原因被撤销由于某种原因被撤销这时这时T1已修改过的数据恢复原值,已修改过的数据恢复原值,T2读到的数据就与数据读到的数据就与数据库中的数据不一致库中的数据不一致T2读

30、到的数据就为读到的数据就为“脏脏”数据,即不正确的数据数据,即不正确的数据 读“脏”数据(续)T1T2 R(C)=100 CC*2 W(C)=200R(C)=200ROLLBACK C恢复为恢复为100例如例如读读“脏脏”数据数据 n T1将将C值修改为值修改为200,T2读到读到C为为200n T1由于某种原因撤销,由于某种原因撤销,其修改作废,其修改作废,C恢复恢复原值原值100n 这时这时T2读到的读到的C为为200,与数据库内容不一致,与数据库内容不一致,就是就是“脏脏”数据数据 并发控制概述(续)数据不一致性:由于数据不一致性:由于并发操作破坏了事务的隔并发操作破坏了事务的隔离性离性并发控制就是要用并发控制就是要用正确的方式调度并发操作正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性从而避免造成数据的不一致性 并发控制概述(续)并发控制的主要技术并发控制的主要技术封锁封锁(Locking)时间戳时间戳(Timestamp)乐观控制法乐观控制法封锁什么是封锁什么是封锁基本封锁类型基本封锁类型锁的相容矩阵锁的相容矩阵什么是封锁封锁就是事务封锁就是事务T在对某个数据对象(例如表、记在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。录等)操作之前,先向系统发出请求,对其

温馨提示

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

最新文档

评论

0/150

提交评论