第五章 数据库保护.ppt
《第五章 数据库保护.ppt》由会员分享,可在线阅读,更多相关《第五章 数据库保护.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、上一页上一页下一页下一页返回首页返回首页第第 五五 章章 数据库安全保护数据库安全保护数据库系统中的数据是由数据库系统中的数据是由DBMSDBMS统一进行管理和控制的。统一进行管理和控制的。为了适应和满足数据共享的环境和要求,为了适应和满足数据共享的环境和要求,DBMSDBMS要保证要保证整个系统的正常运转,防止数据意外丢失和不一致数据整个系统的正常运转,防止数据意外丢失和不一致数据的产生,以及当数据库遭受破坏后能迅速地恢复正常,的产生,以及当数据库遭受破坏后能迅速地恢复正常,这就是这就是数据库的安全保护。数据库的安全保护。DBMSDBMS对数据库的安全保护功能是通过四方面实现的,对数据库的安
2、全保护功能是通过四方面实现的,即安全性控制、完整性控制、并发性控制和数据库恢复。即安全性控制、完整性控制、并发性控制和数据库恢复。上一页上一页下一页下一页返回首页返回首页第第 五五 章章 数据库安全保护数据库安全保护5.1 数据库安全性数据库安全性5.2 完整性控制完整性控制5.3 并发控制并发控制5.4 数据库的恢复数据库的恢复上一页上一页下一页下一页返回首页返回首页5.1 5.1 数据库安全性数据库安全性数数据据库库的的安安全全性性是是指指保保护护数数据据库库,以以防防止止非非法法使使用用所所造成数据的泄露、更改或破坏。造成数据的泄露、更改或破坏。安全性控制的一般方法安全性控制的一般方法v
3、对有意的非法活动可采用对有意的非法活动可采用加密存、取数据加密存、取数据的方法的方法控制控制;v对有意的非法操作可使用对有意的非法操作可使用用户身份验证、限制操用户身份验证、限制操作权作权来控制;来控制;v对无意的损坏可采用提高对无意的损坏可采用提高系统的可靠性和数据备系统的可靠性和数据备份份等方法来控制。等方法来控制。上一页上一页下一页下一页返回首页返回首页5.1 5.1 数据库安全性数据库安全性安全控制模型安全控制模型 在在计计算算机机系系统统中中,安安全全措措施施是是一一级级一一级级层层层层设设置置的的,安安全控制模型如图全控制模型如图5.15.1所示。所示。图图5-1 计算机系统的安全
4、控制模型计算机系统的安全控制模型 文件操作文件操作 控制控制 操作权操作权 控制控制 身份身份 验证验证用户用户数数 据据 库库应应 用用 程程序序数数 据据 库库管管 理理 系系统统操作操作系统系统加加 密密 存存储储 与与 冗冗余余数据库数据库上一页上一页下一页下一页返回首页返回首页5.1 5.1 数据库安全性数据库安全性根据图根据图5.15.1的安全模型,当用户进入数据库系统时,系统的安全模型,当用户进入数据库系统时,系统首先根据输入的用户标识进行首先根据输入的用户标识进行身份的鉴定身份的鉴定,只有合法的用,只有合法的用户才准许进入系统。户才准许进入系统。对已进入系统的用户,对已进入系统
5、的用户,DBMSDBMS还要验证此用户是否具有还要验证此用户是否具有操作操作权权,有操作权才能进行操作。,有操作权才能进行操作。DBMSDBMS是建立在操作系统之上的,在操作系统一级设有相应是建立在操作系统之上的,在操作系统一级设有相应的保护措施,比如设置的保护措施,比如设置文件的访问权限文件的访问权限。数据可以通过数据可以通过加密的形式加密的形式存储到数据库中存储到数据库中上一页上一页下一页下一页返回首页返回首页5.1 5.1 数据库安全性数据库安全性一一.用户身份验证用户身份验证用用一一个个用用户户名名或或用用户户标标识识符符来来标标明明用用户户的的身身份份,系系统统以以此此来来鉴鉴别别用
6、用户户的的合合法法性性。如如果果正正确确,则则可可进进入入下下一一步步的的核核实实,否否则则,不不能能使用计算机。使用计算机。用用户户标标识识符符是是用用户户公公开开的的标标识识,它它不不足足以以成成为为鉴鉴别别用用户户身身份份的的凭凭证证。为为 了了 进进 一一 步步 核核 实实 用用 户户 身身 份份,常常 采采 用用 用用 户户 名名 与与 口口 令令(PasswordPassword)相相结结合合的的方方法法,系系统统通通过过核核对对口口令令判判别别用用户户身身份份的的真真伪。伪。v系系统统有有一一张张用用户户口口令令表表,为为每每个个用用户户保保持持一一个个记记录录,包包括括用用户户
7、名和口令两部分数据。名和口令两部分数据。v用户先输入用户名,然后系统要求用户输入口令。用户先输入用户名,然后系统要求用户输入口令。v为了保密,用户在终端上输入的口令不显示在屏幕上。为了保密,用户在终端上输入的口令不显示在屏幕上。v系统核对口令以鉴别用户身份。系统核对口令以鉴别用户身份。上一页上一页下一页下一页返回首页返回首页5.1 5.1 数据库安全性数据库安全性一一.用户身份验证用户身份验证v通过用户名和口令来鉴定用户的方法简单易行,但该方法在使用通过用户名和口令来鉴定用户的方法简单易行,但该方法在使用时,由于用户名和口令的产生和使用比较简单,也容易被窃取,因时,由于用户名和口令的产生和使用
8、比较简单,也容易被窃取,因此还可采用更复杂的方法。此还可采用更复杂的方法。v 例如,每个用户都预先约定好一个过程或者函数,鉴别用户身份例如,每个用户都预先约定好一个过程或者函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数进行计算,系统根据计算结果辨别用户身份的合法性。数进行计算,系统根据计算结果辨别用户身份的合法性。v 例如,让用户记住一个表达式,如例如,让用户记住一个表达式,如T=X+2Y,T=X+2Y,系统告诉用户系统告诉用户X=1,Y=2,X=1,Y=2,如果用户回答如果用户回答T=5T=5,则证
9、实了该用户的身份。则证实了该用户的身份。v 当然,这是一个简单的例子,在实际使用中,还可以设计复杂的当然,这是一个简单的例子,在实际使用中,还可以设计复杂的表达式,以使安全性更好。系统每次提供不同的表达式,以使安全性更好。系统每次提供不同的X X,Y Y值,其他人可能值,其他人可能看到的是看到的是X X、Y Y的值,但不能推算出确切的变换公式的值,但不能推算出确切的变换公式T T。上一页上一页下一页下一页返回首页返回首页5.1 5.1 数据库安全性数据库安全性二二.用户操作权限管理用户操作权限管理1.1.权限的种类权限的种类 对数据库管理系统进行维护的权限对数据库管理系统进行维护的权限 对数据
10、库中的对象和数据进行操作的权限对数据库中的对象和数据进行操作的权限v对数据库对象的权限,包括创建、删除和修改数据库对象对数据库对象的权限,包括创建、删除和修改数据库对象v对数据库数据的操作权,包括对表、视图数据的增、删、改、查权对数据库数据的操作权,包括对表、视图数据的增、删、改、查权2.2.数据库用户的分类数据库用户的分类 (1 1)数据库系统管理员:具有一切权限。)数据库系统管理员:具有一切权限。(2 2)数据库对象拥有者:对其所拥有的对象具有一切权限。)数据库对象拥有者:对其所拥有的对象具有一切权限。(3 3)普通用户:只具有对数据库数据的增、删、改、查权)普通用户:只具有对数据库数据的
11、增、删、改、查权。上一页上一页下一页下一页返回首页返回首页5.2 5.2 完整性控制完整性控制一一.数据库完整性的含义数据库完整性的含义 数据库的完整性是指保护数据库中数据的数据库的完整性是指保护数据库中数据的正确性、有效性和相容正确性、有效性和相容 性,性,防止错误的数据进入数据库造成无效操作。防止错误的数据进入数据库造成无效操作。有关完整性的含义在第一章中已作简要介绍。有关完整性的含义在第一章中已作简要介绍。v 比如年龄属于数值型数据,只能含比如年龄属于数值型数据,只能含0,1,90,1,9,不能含字母或,不能含字母或 特殊符号;特殊符号;v 月份只能用月份只能用1 11212之间的正整数
12、表示;之间的正整数表示;v 表示同一事实的两个数据应相同,否则就不相容,如一个人表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个学号。不能有两个学号。显然,维护数据库的完整性非常重要,数据库中的数据是否具备显然,维护数据库的完整性非常重要,数据库中的数据是否具备 完整性关系到数据能否真实地反映现实世界完整性关系到数据能否真实地反映现实世界。上一页上一页下一页下一页返回首页返回首页5.2 5.2 完整性控制完整性控制 数据库的完整性和安全性是数据库保护的两个不同的方面。数据库的完整性和安全性是数据库保护的两个不同的方面。安全性安全性是保护数据库,以防止非法使用所造成数据的泄露、是保
13、护数据库,以防止非法使用所造成数据的泄露、更改或破坏,安全性措施的防范对象是更改或破坏,安全性措施的防范对象是非法用户和非法操作;非法用户和非法操作;完整性完整性是防止合法用户使用数据库时向数据库中加入不符是防止合法用户使用数据库时向数据库中加入不符合语义的数据,完整性措施的防范对象是合语义的数据,完整性措施的防范对象是不合语义的数据。不合语义的数据。但从数据库的安全保护角度来讲,安全性和完整性又是密但从数据库的安全保护角度来讲,安全性和完整性又是密切相关的。切相关的。上一页上一页下一页下一页返回首页返回首页5.2 5.2 完整性控制完整性控制二二.完整性规则的组成完整性规则的组成为为了了实实
14、现现完完整整性性控控制制,数数据据库库管管理理员员应应向向DBMS提提出出一一组组完完整整性性规则,来检查数据库中的数据,看其是否满足语义约束。规则,来检查数据库中的数据,看其是否满足语义约束。这这些些语语义义约约束束构构成成了了数数据据库库的的完完整整性性规规则则,这这组组规规则则作作为为DBMS控制数据完整性的依据。控制数据完整性的依据。它定义了何时检查、检查什么、查出错误又怎样处理等事项。它定义了何时检查、检查什么、查出错误又怎样处理等事项。具体地说,完整性规则主要由以下三部分构成:具体地说,完整性规则主要由以下三部分构成:1 触发条件:触发条件:规定系统什么时候使用规则检查数据;规定系
15、统什么时候使用规则检查数据;2 约约束束条条件件:规规定定系系统统检检查查用用户户发发出出的的操操作作请请求求违违背背了了什什么么样样的完整性约束条件;的完整性约束条件;3 违违约约响响应应:规规定定系系统统如如果果发发现现用用户户的的操操作作请请求求违违背背了了完完整整性性约约束束条条件件,应应该该采采取取一一定定的的动动作作来来保保证证数数据据的的完完整整性性,即即违违约时要做的事情。约时要做的事情。上一页上一页下一页下一页返回首页返回首页5.2 5.2 完整性控制完整性控制关系模型的完整性包括关系模型的完整性包括实体完整性,参照完整性和用户定义完整性。实体完整性,参照完整性和用户定义完整
16、性。对于违反实体完整性和用户定义完整性规则的操作一般都是采用对于违反实体完整性和用户定义完整性规则的操作一般都是采用拒绝拒绝执行的方式执行的方式进行处理。进行处理。而对于违反参照完整性的操作,并不都是简单的拒绝执行,一般在接而对于违反参照完整性的操作,并不都是简单的拒绝执行,一般在接受这个操作的同时,执行一些附加的操作,以保证数据库的状态仍然受这个操作的同时,执行一些附加的操作,以保证数据库的状态仍然是正确的。是正确的。例如:在删除被参照关系中的元组时,应该将参照关系中所有的外码例如:在删除被参照关系中的元组时,应该将参照关系中所有的外码值与被参照关系中要删除元组主码值相对应的元组一起删除。值
17、与被参照关系中要删除元组主码值相对应的元组一起删除。比如,要删除比如,要删除S S关系中关系中SNO=S1SNO=S1的元组,而的元组,而SCSC关系中又有两个关系中又有两个SNO=S1SNO=S1的元组。的元组。这时根据应用环境的语义,因为当一个学生毕业或退学后,他的这时根据应用环境的语义,因为当一个学生毕业或退学后,他的个人记录从个人记录从S S关系中删除,选课记录也应随之从关系中删除,选课记录也应随之从SCSC表中删除,所表中删除,所以应该将以应该将SCSC关系中两个关系中两个SNO=S1SNO=S1的元组一起删除。的元组一起删除。上一页上一页下一页下一页返回首页返回首页5.2 5.2
18、完整性控制完整性控制数据完整性的实现一般是在服务器端完成的数据完整性的实现一般是在服务器端完成的服务器端实现数据完整性的方法:服务器端实现数据完整性的方法:v 在定义表的时候声明数据完整性在定义表的时候声明数据完整性v 在服务器端编写触发器实现数据完整性在服务器端编写触发器实现数据完整性一旦进入系统,就开始执行数据完整性规则。一旦进入系统,就开始执行数据完整性规则。其主要优点是违约由系统来处理,而不是由用户处理。其主要优点是违约由系统来处理,而不是由用户处理。数数据据库库系系统统的的整整个个完完整整性性控控制制都都是是围围绕绕着着完完整整性性约约束束条条件件进进行行的的,从从这这个个角角度度来
19、来看看,完完整整性性约约束束条条件件是是完完整性控制机制的核心。整性控制机制的核心。上一页上一页下一页下一页返回首页返回首页5.2 5.2 完整性控制完整性控制三三.完整性约束条件的完整性约束条件的作用对象作用对象 完整性约束条件的作用对象可以是完整性约束条件的作用对象可以是表、元组和列。表、元组和列。1.1.列级约束列级约束:即对数据类型、数据格式、取值范围等进行规定。:即对数据类型、数据格式、取值范围等进行规定。v 对数据类型的约束对数据类型的约束,包括数据的类型、长度、单位和精度等。,包括数据的类型、长度、单位和精度等。例如,规定学生姓名的数据类型应为字符型,长度为例如,规定学生姓名的数
20、据类型应为字符型,长度为8 8。v 对数据格式的约束对数据格式的约束。例如,规定出生日期的数据格式为例如,规定出生日期的数据格式为YY.MM.DDYY.MM.DD。v 对取值范围的约束。对取值范围的约束。例如,月份的取值范围为例如,月份的取值范围为1 11212,日期,日期1 13131 v 对空值的约束。对空值的约束。空值表示未定义或未知的值,它与零值空值表示未定义或未知的值,它与零值 空格不同。有的列值允许空值,有的则不允许。空格不同。有的列值允许空值,有的则不允许。例如,学号和课程号不可以为空值,但成绩可以为空值例如,学号和课程号不可以为空值,但成绩可以为空值上一页上一页下一页下一页返回
21、首页返回首页5.2 5.2 完整性控制完整性控制三三.完整性约束条件的完整性约束条件的作用对象作用对象 2.2.元组约束元组约束 元组的约束是元组的约束是元组中各个字段之间的联系的元组中各个字段之间的联系的约束,约束,如:开始日期小于结束日期,职工的最如:开始日期小于结束日期,职工的最低工资不能低于规定的最低保障金等。低工资不能低于规定的最低保障金等。3.3.关系约束关系约束 关系约束是指关系约束是指若干元组之间、关系之间的联若干元组之间、关系之间的联系的约束。系的约束。比如学号的取值不能重复也不能取比如学号的取值不能重复也不能取空值,学生修课表中的学号的取值受学生表中空值,学生修课表中的学号
22、的取值受学生表中的学号取值的约束等的学号取值的约束等 。上一页上一页下一页下一页返回首页返回首页5.3 5.3 并发控制并发控制每个用户在存取数据库中的数据时,可能是每个用户在存取数据库中的数据时,可能是串行执行串行执行,即每个时,即每个时刻只有一个用户程序运行,也可能是刻只有一个用户程序运行,也可能是多个用户并行地存取数据库。多个用户并行地存取数据库。数据库的最大特点之一就是数据库的最大特点之一就是数据资源是共享数据资源是共享的,串行执行意味着的,串行执行意味着一个用户在运行程序时,其他用户程序必须等到这个用户程序结一个用户在运行程序时,其他用户程序必须等到这个用户程序结束才能对数据库进行存
23、取,这样如果一个用户程序涉及大量数据束才能对数据库进行存取,这样如果一个用户程序涉及大量数据的输入的输入/输出交换,则数据库系统的大部分时间将处于闲置状态。输出交换,则数据库系统的大部分时间将处于闲置状态。因此,为了充分利用数据库资源,很多时候数据库用户都是对因此,为了充分利用数据库资源,很多时候数据库用户都是对 数据库系统数据库系统并行存取数据并行存取数据,这样就会发生多个用户并发存取同一,这样就会发生多个用户并发存取同一 数据块的情况,如果对并发操作不加控制可能会产生不正确的数数据块的情况,如果对并发操作不加控制可能会产生不正确的数 据,破坏数据的完整性,据,破坏数据的完整性,并发控制并发
24、控制就是解决这类问题,就是解决这类问题,以保持数以保持数 据库中数据的一致性,即在任何一个时刻数据库都将以相同的形式据库中数据的一致性,即在任何一个时刻数据库都将以相同的形式 给用户提供数据。给用户提供数据。上一页上一页下一页下一页返回首页返回首页5.3 5.3 并发控制并发控制一一.事务(事务(TransactionTransaction)事务是事务是用户定义的数据操作系列用户定义的数据操作系列,这些操作作为一,这些操作作为一个个完整的工作单元完整的工作单元.一一个个事事务务可可以以是是一一组组SQL语语句句、一一条条SQL语语句句或或整整个程序,一个应用程序可以包括多个事务。个程序,一个应
25、用程序可以包括多个事务。一个事务内的所有语句被作为一个事务内的所有语句被作为一个整体一个整体,要么全部,要么全部执行,要么全部不执行。执行,要么全部不执行。例如:对于一个转帐活动:例如:对于一个转帐活动:A帐户转帐给帐户转帐给B帐户帐户n元元钱,这个活动包含两个动作:钱,这个活动包含两个动作:第一个动作:第一个动作:A帐户帐户 n 第二个动作:第二个动作:B帐户帐户 n 1.1.事务的定义事务的定义上一页上一页下一页下一页返回首页返回首页5.3 5.3 并发控制并发控制事事务务的的开开始始与与结结束束可可以以由由用用户户显显式式控控制制。如如果果用用户户没没有有显显式式地地定定义事务,则由义事
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五章 数据库保护 第五 数据库 保护
限制150内