数据库安全培训课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库安全培训课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全 培训 课件
- 资源描述:
-
1、第6章 数据库安全精品本章要点r 数据库完整性:记录完整性、数据正确性和更新完整性 r 数据库安全:访问控制、推理和聚集r 多级安全数据库:分区、加密封装和过滤数据r 数据挖掘应用的安全精品 保护数据是大多数安全系统的核心,许多用户依靠数据库管理系统数据库管理系统(DBMS,database management system)来管理并保护数据。基于此原因,我们重点研究数据库管理系统的安全,并将其作为一个示例来说明如何设计并实现完成特殊任务的应用程序的安全。然而,数据库管理系统仅提供一个综合保护效果。长期以来,我们已经深化了对数据库安全问题的理解,并且获得了一些好的控制方法。但是,也有一些仍然
2、无法控制的安全隐患。精品6.1 数据库简介 6.1.1 数据库概念 数据库数据库(database)是数据数据以及按某种指定关系组织数据的一组规则规则的集合。用户使用这些规则来描述数据的逻辑格式。数据项存储在文件中,但是用户不必关心文件的精确物理格式。数据库管理员数据库管理员(database administrator)负责定义组织数据的规则和控制对数据库的访问。用户通过数据库管理数据库管理器器(database manager)或数据库管理系统数据库管理系统(DBMS)程序非正式地称为前端前端(front end)使用数据库。精品6.1.2 数据库组成 数据库文件由记录记录(record)
3、组成,每个记录包含了一组相关的数据。每个记录包含域域(field)或元素元素(element),即它们的基本数据项。表 6.1 一个数据库的实例ADAMS212 Market St.ColumbusOH43210BENCHLY501 Union St.ChicagoIL60603CARTER411 Elm St.ColumbusOH43210精品6.1.2 数据库组成(续)图 6.1 一个数据库的相关部分并非所有数据库都可以非常容易地用一张单一、紧凑的表来表示。精品6.1.2 数据库组成(续)数据库的逻辑结构称为模式模式(schema)。一名特殊的用户可能只允许访问数据库的一部分,称之为子模式
4、子模式(subschema)。表 6.2 图6.1中的数据库模式NameFirstAddressCityStateZipAirportADAMSCharles212 Market St.ColumbusOH43210CMHADAMSEdward212 Market St.ColumbusOH43210CMHBNCHLYZeke501 Union St.ChicagoIL60603ORDCARTERMarlene411 Elm St.ColumbusOH43210CMHCARTERBeth411 Elm St.ColumbusOH43210CMHCARTERBen411 Elm St.Colum
5、busOH43210CMHCARTERLisabeth411 Elm St.ColumbusOH43210CMHCARTERMary411 Elm St.ColumbusOH43210CMH精品6.1.2 数据库组成(续)数据库的规则要求以列名识别列,列名也称为数据库的属性属性(attribute),列的集合构成了一个关系关系(relation)。关系描述了有关数据值的簇簇(cluster),每一簇可能会是2、3、4、n元组(n表示任意值)。表6.3 数据库中的关系NameZipADAMS43210BENCHLY60603CARTER43210精品6.1.2 数据库组成(续)查询操作查询操作
6、用户通过DBMS的命令与数据库交互,命令有:检索、修改、增加或删除数据库中的域和记录。查询查询(query)是一个命令,数据库管理系统有构成查询语句的精确的语法规则。大多数查询语言使用类英语符号表示,其中很多以SQL语言为基础。查询结果为一个子模式,该模式由满足给定条件的记录构成。精品6.1.2 数据库组成(续)例如,SELECT ZIP=43210。NameFirstAddressCityStateZipAirportADAMSCharles212 Market St.ColumbusOH43210CMHADAMSEdward212 Market St.ColumbusOH43210CMHC
7、ARTERMarlene411 Elm St.ColumbusOH43210CMHCARTERBeth411 Elm St.ColumbusOH43210CMHCARTERBen411 Elm St.ColumbusOH43210CMHCARTERLisabeth411 Elm St.ColumbusOH43210CMHCARTERMary411 Elm St.ColumbusOH43210CMH另外,更复杂的选择条件包含逻辑运算,如()或()以及比较运算符()。例如,SELECT(ZIP=43210)(NAME=ADAMS)。表6.4 选择查询的结果精品6.1.2 数据库组成(续)在选择了记
8、录后,我们可以对这些记录的一个或多个属性进行投影投影(project)运算。投影操作是从这些满足条件的记录中选取满足条件的列(域)。选择-投影操作的结果是选择的记录在指定属性上值的集合。例如,SHOW NAME,FIRST WHERE ZIP=43210。表6.5 选择-投影查询结果ADAMSCharlesADAMSEdwardCARTERMarleneCARTERBethCARTERBenCARTERLisabethCARTERMary精品6.1.2 数据库组成(续)我们也可以使用连接连接(join)查询来根据相同的元素合并两个模式。该操作的结果是一个子模式,该子模式在相同元素上有相同的值。
9、例如,SELECT NAME,AIRPORT FROM NAME-ZIP JOIN ZIP-AIPORT ON NAME-ZIP.ZIP=ZIP-AIPORT.ZIP。图 6.2 选择-投影-连接查询的结果精品6.1.3 数据库的优点 数据库是数据的一个集合,它被集中存储和维护,以满足人们的访问需求。这样,与简单的文件系统相比,数据库提供了很多好处:共享访问共享访问:以便用户使用一些公共、集中的数据。最小冗余最小冗余:使用户不必自己收集和保存数据集。数据一致性数据一致性:改变一个数据值将影响所有使用该数据值的用户。数据完整性数据完整性:保护数据值,使偶然或恶意的行为不会改变数值。访问控制访问控
10、制:只有授权用户才允许浏览或修改数据值。#数据库的安全利益和性能之间存在冲突。这种冲突不足为怪,因为加强安全措施通常要增加计算机系统的规模和复杂度。精品6.2 安全需求 以下为数据的安全需求:(1)数据库的物理完整性数据库的物理完整性:数据库中的数据不受停电之类影响,并且人们可以重建被破坏的数据库。(2)数据库的逻辑完整性数据库的逻辑完整性:保护数据库的结构。(3)元素的完整性元素的完整性:每个元素中包含的数据都是正确的。(4)可审计性可审计性:可追踪谁访问了数据库中的哪些元素。(5)访问控制访问控制:用户只能访问被授权的用户。(6)用户鉴别用户鉴别:对每个用户都必须鉴别。(7)可用性可用性:
11、用户可以访问数据库中的授权数据和一般数据。精品6.2.1 数据库完整性 如果数据库以集中的数据仓库方式提供数据访问服务,则用户必须相信其中的数据值是正确的。有两种情况会影响数据的完整性:整个数据库被损坏以及单个数据项变得不可读。整个数据库的完整性由DBMS、操作系统和计算系统管理员负责。保护整个数据库的方法之一是定期备份数据库系统中的所有文件。有时,能够在故障点重建数据库非常重要。DBMS需要维护一个事务日志。在系统发生故障后,可通过重新装入数据库的后备副本并重新执行“日志”记录所有的事务,而获得用户的正确状态。精品6.2.2 元素完整性 元素完整性指数据库元素的正确性或准确性。DBMS采用三
12、种方式来维护数据库中每个元素的完整:(1)DBMS可以利用域检查域检查(field check),确保某个域的所有值在合适的范围之内。域检查确保了值在指定界内或不大于另外两个域的值之和,也可防止一些简单的错误,如用户输入数据错误。精品6.2.2 元素完整性(续)(2)访问控制访问控制(access control)以及集中管理的方式。但谁该共享重要的文件?谁拥有更新元素的权限?如果两个用户更改时相互冲突,如何解决?如何检查和处理重复记录?都是数据库管理员需要解决的问题。(3)更改更改日志日志(change log)。更改日志维护和保存了数据库的每次修改,同时记录初始值和更新值。精品6.2.3
13、可审计性 在某些应用中,需要产生关于数据库的所有访问(或读写)的审计记录,这个记录可以协助维护数据库的完整性,至少可以在发生故障后,为分析解决问题提供依据。另一个优点是可以掌握用户不断增加对被保护数据的访问。单一的访问不会暴露被保护的数据,但在一系列连续的访问后,将数据综合起来就可能发现被保护的数据。在这种情况下,审计追踪可以确定用户已经获得的数据线索,然后指导做出是否还应该允许用户做进一步查询的决定。精品6.2.3 可审计性(续)审计粒度是审计的障碍。数据库的审计踪迹应该包括对记录、域甚至元素级的访问,大多数数据库的应用不能达到这种程度。此外,在例如用户执行选择操作时,用户可以访问数据但并未
14、获得数据的具体值访问一个记录或元素后,系统不将结果数据传递给用户,这种情况称穿过问题穿过问题(pass-through problem)。同时,用户也可以不直接访问元素而获得它们的值。因此,只记录所有直接访问的日志可能夸大或低估了用户对数据库的实际了解情况。精品6.2.4 访问控制 数据库通常按照用户的访问权限进行逻辑分割。限制访问是数据库集中管理形式的职责和优势。DBMS需要实施这样的访问策略:授权访问所有指定的数据,阻止访问禁止的数据。数据库管理员需要分别以视图、关系、域、记录、甚至元素级给予说明。用户或程序可能拥有的权限包括:读、改变、删除或附加一个值、增加或删除整个域或记录、重组数据库
15、。精品6.2.4 访问控制(续)对数据库的访问控制比对操作系统的访问控制更为复杂。虽然在操作系统中用户通常不可能通过读一个文件来推理其他文件的内容,但在数据库中则可能通过读其他元素的值而推知另一个元素的值。从已获得的数据值推断更多的值,称为推理推理(inference)。限制推理意味着要禁止一些特定的路径来阻止可能的推理,但也限制了某些用户的正常查询,这样做实际降低了DBMS的性能。因为数据库中的每个文件可能还包含几百个数据域,访问控制的实现要比操作系统困难得多,粒度的大小影响了处理的效率。精品6.2.5 用户鉴别 通常,数据库作为应用程序运行在操作系统之上。这种设计意味着DBMS和操作系统之
16、间没有可信路径,所以DBMS必须对所有接收到的数据持怀疑态度,包括用户鉴别。因此,DBMS不得不自己进行用户鉴别。精品6.2.6 可用性 对于许多用户来说,DBMS 是可执行的应用程序。用户通常把DBMS看作是用来执行特殊任务的基本工具。当系统不可用时,用户会清楚地意识到此时BDMS是不可用的。这实际上是要求DBMS有高可用性。精品6.2.7 完整性/机密性/可用性 每个元素以至于整个数据库都要求完整性,因此,完整性是设计BDMS时主要关心的问题。由于存在推理攻击,所以用户可以通过推理间接获取敏感数据,机密性成为数据库的关键问题。数据库开发的初衷就是为了更好利用共享访问,所以可用性也是一个关键
17、问题,然而,可用性和机密性相互冲突。精品6.3 可靠性和完整性 软件可靠性可靠性(reliability)是指软件能够长时间无故障地运行。DBMS有几种方法保护数据以防止丢失或被破坏。数据库的可靠性和完整性可以从以下三个级别来考察:(1)数据库完整性数据库完整性:在磁盘驱动器或数据库主索引损坏后,保障整个数据库不受损害。(2)元素完整性元素完整性:只有授权用户可以写或修改一个特殊的数据元素。(3)元素正确性元素正确性:只有正确的值才能写入数据库。检查元素值可以防止插入不适当的值。同时,设定的限制条件也可以发现错误值。精品6.3.1 操作系统提供的保护特性 操作系统对所有计算系统的资源提供保护。
18、当操作系统负责管理时,数据库文件会被周期性备份。操作系统使用标准访问控制工具保护文件,以免文件在正常的执行过程中被外界访问。在正常读写I/O设备时,操作系统将对所有数据进行完整性检查。精品6.3.2 两阶段更新 对数据库管理器来说,在修改数据的途中计算系统出现故障是一个严峻的问题。它可能导致一个数据项的部分元素已经更新,而另部分却没有更新的问题,而发现并更正这一问题比较困难。为此,Lampson 和Sturgis提出了两阶段更新方案解决这个问题,大部分DBMS采用了这种方案。精品6.3.2 两阶段更新(续)更新技术更新技术 第一阶段称为意向意向(intent)阶段,DBMS收集所有执行更新需要
19、的资源。做足更新前的一切准备工作,但并没有对数据库做任何改变。因为每个步骤都并未永久地更新数据,所以第一阶段可以重复无数次。第一阶段的最后事件是提交提交(committing),包括为数据库做提交标记提交标记(commit flag)。提交标记意味着DBMS通过了不需要撤消的点。精品6.3.2 两阶段更新(续)第二阶段实现永久更新。如果在这个阶段出现故障,数据库可能包含不完整的数据,但系统可以重新执行第二阶段的所有动作以修复数据。第二阶段结束,数据库更新完毕。精品6.3.2 两阶段更新(续)两阶段更新的实例两阶段更新的实例 假定某公司有一个办公用品管理系统,其数据库中包含公司的办公用品清单,中
20、心仓库管理员需要管理办公用品分发以及监控现有的供应量,以便在库存不足时定货。假定现有库存107箱文件夹,而低于100箱时需要定货。假定会计部提出申请需要50箱文件夹。仓库管理员处理请求的步骤为:(1)仓库和数据库是否有50箱文件夹库存。没有,拒绝请求结束事物。(2)如果库存充足,从数据库中的存货中扣除50箱文件夹。(3)仓库从会计部预算中收取50箱文件夹的费用。(4)仓库检查剩余的库存57箱文件夹(107-50=57)是否低于定货界限。如果是,将产生一个定货提示,并将数据库中的文件夹项标记为“定货中”。(5)准备好交货,把50箱文件夹送到会计部。精品6.3.2 两阶段更新(续)当进行两个阶段提
21、交时,可用影子值影子值(shadow value)来保存关键数据。如下所示:意向:(1)检查数据库中的COMMIT-FLAG。如果该值已经设置,则不进行意向阶段,直到其被清零。(2)比较库存文件夹箱数和需求量,如果需求大于库存,停止。(3)计算剩余文件夹箱数TCLIPS=ONHAND-REQUISITION。(4)获得会计部的预算BUDGET,计算结余TBUDGET=BUDGET-COST。(5)检查TCLIPS是否低于定货界限,如果是,设置TREORDER=TRUE;否则,设置TREORDER=FALSE。精品6.3.2 两阶段更新(续)提交:(1)在数据库中设置COMMIT-FLAG。(2
22、)复制TCLIPS到数据库的CLIPS。(3)复制TBUDGET到数据库的BUDGET。(4)复制TREORDER到数据库的REORDER。(5)准备向会计部发送文件夹的通知。在日志中表明完成事务。(6)清除COMMIT-FLAG。#每个T开头的变量是只在事务阶段使用的影子变量。精品6.3.3 冗余/内在一致性 许多DBMS通过维护附加信息来检测数据内在的不一致性。检错与纠错检错与纠错 一种冗余形式是检错码或纠错码,可应用于单个域、记录或整个数据库,比如,奇偶效验码、海明(Hamming)编码、循环冗余检查。检验码提供的信息越多,所占的存储空间越大。影子域影子域 在数据库中可以复制整个属性或记
23、录。这里冗余域显然需要大量的存储空间。精品6.3.4 恢复 除了这些纠错过程外,DBMS还需要维护用户的访问日志,尤其是更改日志。在发生故障后,从后备副本中重新装载数据库,并根据日志将数据库恢复到故障前的最后一个正确状态。精品6.3.5 并发性/一致性 DBMS使用了简单的封锁技术来保证共享数据库安全。如果两个用户需要对相同数据项进行读访问,则他们之间没有冲突,因为他们将获得相同的值。如果两个用户尝试修改相同的数据,我们通常假定用户间没有冲突,因为每个用户都知道写什么值;同时,认为写入的值不依赖于数据项先前的值。然而,这个假定往往不总是正确的。精品6.3.5 并发性/一致性(续)假如有一个特定
24、航班的订座数据库。代理人A将为乘客Mock预订座位,向数据库提交了一个查询,请求过道右边的座位发现了5D、11D、14D。同时另一个代理人B想为一家三口预订三个相邻的位置,发现了8A-B-C和11D-E-F是未预约的。这时代理A提交了订座命令订下11D,而代理B提交了订座命令订下11D-E-F。这时就产生了问题。而出现这种问题的原因,在于从数据库中读数据和改写数据之间的时间延迟。在延迟时段中,另外的用户可访问同一个数据。精品6.3.5 并发性/一致性(续)为了解决这个问题,DBMS把整个查询/更新周期看做一个原子操作。读/修改周期必须在一个未受干扰的情况下完成,禁止其他用户对11D的访问。直到
25、第一个代理成功预订后才开始考虑第二个代理人的请求。此外,如果一个用户A正在读时,另一个用户B正在写,那么用户A将读到部分更新的数据。因此,DBMS将锁定读请求直到写操作完成后。精品6.3.6 监视器 监视器监视器(monitor)是DBMS中负责数据库结构完整性的单元。范围比较范围比较 范围比较监视器检测每个新产生的值,确保每个值在可接受的范围内。如果一个数据值在范围之外,监视器会拒绝该数据值,并不将它输入数据库。范围比较可用于保障数据库的内在一致性。如果怀疑数据库中的某些数据已经遭到破坏,范围检查可以识别所有可疑记录的数据。精品6.3.6 监视器(续)状态约束状态约束 状态约束状态约束(st
展开阅读全文