数据库-05-第五章1-4节

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章数据库的安全与保护数据库的安全与保护5.1安全与保护概述5.2数据库的安全性保护5.3数据库的完整性保护5.4数据库的并发控制技术5.5数据库的恢复技术5.6数据库的复制与相关技术数据库的安全与保护数据库中数据的重要性:现代企业最宝贵的共享信息和财富。安全与保护:保证数据在使用过程中安全可靠、正确可用,且当数据库遭到破坏后能够迅速地得到恢复。5.1安全与保护概述造成数据库中数据不正确,或被破坏的原因:⑴自然的或人为的破坏:火灾、计算机病毒或未被授权人有意篡改数据等。⑵对数据库数据的更新操作有误:操作时输入的数据有误或存取数据库的应用程序有错等。⑶数据库的并发操作引起数据的不一致。⑷数据库系统的软/硬件故障造成数据被破坏。数据库应用系统可以从硬件层网络层操作系统层DBMS层应用系统等多个层面上设置安全和保护措施来解决以上四类原因引起的数据库安全与保护问题。5.1安全与保护概述5.1安全与保护概述安全性级别环境级:对机房和设备的保护(含硬件)职员级:职员的道德教育,正确授权OS级:防止非法用户从OS处进入DBS网络级:防止非法用户在网络传输过程中窃取信息数据库系统:检查合法用户及其权限(含DBMS)5.1安全与保护概述仅关心DBMS提供的数据库安全和保护功能:⑴安全性(security)保护:防止非法用户对数据库的非法使用,以避免数据的泄露、篡改或破坏。⑵完整性(integrity)保护:保证数据的正确性和一致性。⑶并发控制(concurrentcontrol):保证多用户能共享数据库,并维护数据的一致性。⑷数据库恢复(databaserecovery):在系统失效后的数据库恢复,配合定时备份数据库,使数据库不丢失数据。5.2数据库的安全性保护DBMS提供的数据库安全性保护:只允许有合法使用权限的用户访问他有权访问的数据.通常包括如下几个层次:用户鉴别存取权限控制视图机制跟踪审查数据加密存储返回5.2.1用户鉴别用户若要访问某个数据库,必须首先登录到DBMS。DBMS提供的最外层安全性保护措施:对于每个要求访问数据库的用户,鉴别其是否为合法用户。鉴别方法:DBMS系统内部记录着所有合法用户的用户名和口令。每次用户要求进入系统时,DBMS要求用户输入用户名和口令,并将其与系统内部记录的合法用户名和口令进行核对,通过鉴定的合法用户才能登录到DBMS。5.2.1用户鉴别DBMS提供了一定的工具和命令,让DBA创建和定义合法用户。并对每个合法用户赋予一定的角色和权限.比如:DatabaseCreators:可创建数据库的角色;DiskAdministrators:可管理磁盘文件的角色;SecurityAdministrators:可管理注册安全的角色。返回5.2.2存取权限控制数据库是一个共享数据集合,不同用户对数据库数据的操作范围一般是不同的,其操作权限也是不同的。存取权限控制:当一个用户登录到DBMS后,找出他在数据库中可以使用的数据对象,对可以使用的对象限定他能够执行的操作。5.2.2存取权限控制比如,在高校的信息管理系统中,财务部人员无权操作教务部门的有关数据;教务人员也无权操作财务部门的数据;此外,财务处的数据只有财务部门的人能够修改,而其他相关部门只能查询其有关数据,而无权修改这些数据。商品化DBMS都提供了一定工具和命令来定义每个用户的存取权限(SSMS和GRANT命令等),以防止各种非法修改和使用,确保数据的安全性。5.2.2存取权限控制DBMS对每个用户,可以定义以下两种存取控制权限:数据对象权限:规定用户使用数据库中数据对象的范围—数据库、表、列;操作类型权限:规定用户在可使用数据对象上能执行的操作—增、删、改、看5.2.2存取权限控制DBMS中有两种存取控制权管理方式:1、集中管理方式:由DBA定义每个用户的权限。2、分散管理方式:由用户将自己拥有的全部或部分权限授予其他用户。DBMS也为DBA或授权者提供了相应的工具或命令,如Revoke用于撤消授予某个用户的任何操作权限。5.2.2存取权限控制表5.1关系DBMS中的存取权限数据对象操作类型模式模式外模式内模式建立、修改、检索建立、修改、检索建立、修改、检索数据表元组属性列查找、插入、修改、删除查找、插入、修改、删除5.2.2存取权限控制授权粒度:存取权限控制的数据对象范围,是衡量授权机制是否灵活的一个重要指标。粒度与系统效率:授权定义中数据粒度越细,即可定义的数据对象的范围越小,授权子系统就越灵活,能够提供的安全性就越完善。但数据字典可能变得大而复杂,系统定义与检查权限的开销也会随之而增大。返回5.2.3视图机制视图机制:为不同用户定义不同的视图,把用户无权存取的数据隐藏起来,从而自动地对数据提供一定程度的安全保护。视图机制的主要的功能是保证应用程序的数据独立性,其安全保护功能太不精细。实际的数据库应用系统通常是视图机制与授权机制配合使用:首先用视图机制屏蔽掉一些保密数据,然后在视图上面再进一步定义其存取权限。返回5.2.4跟踪审查跟踪审查:一种事后监视的安全性保护措施,它跟踪数据库的访问活动,以发现数据库的非法访问,达到安全防范的目的。DBMS的跟踪程序可对某些保密数据进行跟踪监测,记录有关这些数据的访问活动。当发现潜在的窃密活动(如重复的、相似的查询等)时,一些有自动警报功能的DBMS就会发出警报信息;对于没有自动报警功能的DBMS,可根据这些跟踪记录信息进行事后分析和调查。5.2.4跟踪审查跟踪审查的结果记录在一个特殊的文件上,这个文件叫跟踪审查记录。跟踪审查记录一般包括下列内容:·操作类型(例如修改、查询等)·操作终端标识与操作者标识·操作日期和时间·所涉及的数据·数据的前像和后像5.2.4跟踪审查跟踪审查一般由DBA控制,DBMS提供相应的语句供用户施加和撤消跟踪审查之用。对表Reports施加跟踪和撤消跟踪审查:AUDITSELECT,INSERT,DELETE,UPDATEONReportsWHENEVERSUCCESSUL;(即对Reports表的每次成功的选择、增加、插入、删除、修改作跟踪审查记录。)NOAUDITALLONReports(即撤消对Reports的所有跟踪审查。)5.2.5数据加密存储对于高度敏感性数据,例如财务数据、军事数据、国家安全数据,可以采用数据加密技术,以密码的形式传输和存储数据。即使非法用户通过不正当途径获得加密数据,由于不知道解密算法,通常只能看到一些无法辨认的二进制代码而不知道数据的真实内容,从而达到保护数据的目的。当合法用户使用数据时,他看到的是由系统提供的解密算法还原后的可识别的正常数据,即原文。5.2.5数据加密存储商品化DBMS通常提供了数据加密例行程序,可根据用户要求自动对存储和传输的数据进行加密处理。有些DBMS本身未提供这种加密程序,但它们一般都提供了接口,允许用户使用其它厂商推出的加密程序对数据加密。数据的加密与解密比较费时,且数据加密与解密程序会占用大量系统资源,因此数据加密功能通常只作为可选特征,允许用户自由选择使用,一般只对高度机密的数据加密。返回5.3数据库的完整性保护数据库的完整性:数据库中数据的正确性、一致性和相容性。完整性保护:采取措施及时发现数据的不正确、不一致或不相容性,防止错误的进一步扩大并能及时恢复数据库,保证数据库的完整性。完整性约束的分类完整性控制触发器返回5.3.1完整性约束的分类完整性约束:数据库中数据本身的某些语义限制、数据之间的逻辑约束以及数据变化时所应遵循的规则等。约束条件一般在数据模式中给出,作为模式的一部分存入数据字典中。运行时由DBMS自动检查,当不满足条件时立即向用户通报以便采取措施。5.3.1完整性约束的分类完整性约束条件的作用对象分为列、元组和关系三种级别。列约束:指对其取值类型、范围、精度、排序等的约束条件。元组约束:指对记录中各个属性之间的联系的约束条件。关系约束:对关系以及关系之间联系的约束条件。在DBMS中,完整性约束功能包括完整性约束条件设置和它的检查两部分,一般通过完整性约束语句给出。5.3.1完整性约束的分类完整性约束条件的作用状态:静态约束条件和动态约束条件。静态约束:数据库中数据的语法、语义限制与数据间的逻辑约束.它反映数据及数据间的固有的逻辑特性。例如:国家公务员的年龄约束为18~60岁,工资约束为300~5000元等,可分别用逻辑公式表示为:Age≤60ANDAge≥18Salary≤5000ANDSalary≥300动态约束:数据库中的数据变化时应遵循的规则。它反映数据变化的规则。比如,学生选修数据库课程考试合格后,在其总学分中就要自动增加该课程的学分。5.3.1完整性约束的分类根据完整性约束条件的作用对象和状态,可以将完整性约束条件分为以下六种类型:(1)静态列级约束;(2)静态元组约束(3)静态关系约束;(4)动态列级约束(5)动态元组约束;(6)动态关系约束返回(1)静态列级约束静态列级约束:对一个列的取值域的说明,主要有:对数据类型的约束。对数据格式的约束。对取值范围或取值集合的约束。对空值的约束。比如,规定成绩可以为空值,姓名不能为空值。返回(2)静态元组约束静态元组约束:规定组成一个元组的各列值之间的约束关系。例如,教师表中包括职称、职称津贴等,并规定教授津贴不低于950元就是静态元组约束。返回(3)静态关系约束一个关系的各个元组之间或者若干关系之间存在的联系或约束。常见的静态关系约束有四种:(1)实体完整性约束;(2)参照完整性约束;(3)函数依赖约束;(4)统计约束;其中函数依赖约束一般在关系模式中定义。返回(4)动态列级约束动态列级约束:修改列定义或列值时应满足的约束条件。例如,如果规定将原来允许为空值的列改为不允许为空值时,该列目前已存在空值,则拒绝这种修改,此为修改列级时的约束。又如,我们要将职工工资调整不得低于其原来工资,这是修改列值需要参照其旧值,并且新旧值之间需要满足一定的约束条件。返回(5)动态元组约束动态元组约束:指修改元组时元组各个列之间需要满足某种约束条件。例如,职工工资调整不低于其原来工资+工龄*1.5等。返回(6)动态关系约束动态关系约束:关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。返回5.3.2完整性控制完整性控制:DBMS定义、检查并保证六大类完整性约束条件得到满足。完善的DBMS完整性控制机制应该允许用户定义上述所有完整性约束条件,且应提供以下三个方面的功能:定义功能:为用户提供定义完整性约束条件的命令或工具。检查功能:能够自动检查用户发出的操作请求是否违背了完整性约束条件。保护功能:当发现用户的操作请求使数据违背了完整性约束条件时,能够自动采取一定的措施确保数据的完整性不遭破坏。5.3.2完整性控制根据DBMS检查用户的操作请求是否违背完整性约束条件的时机,完整性约束又可分为立即执行和延迟执行两种。立即执行的约束:当一条语句执行完后立即检查完整性约束条件。延迟执行的约束:完整性约束条件延迟到整个事务执行结束后,正式提交前进行检查。5.3.2完整性控制例如,在银行数据库中“借贷总金额平衡”的约束就是延迟执行的约束:从账号A转一笔钱到账号B为一个事务,刚从账号A转出一笔款项后账目就不平衡了,必须等到这笔款项转入账号B后,账目才重新得到平衡。因此,这个约束就必须等到事务执行完成后才进行完整性检查。5.3.2完整性控制在6种完整性约束条件中,RDBMS自动支持并控制管理实体完整性和参照完整性约束(静态关系约束的一部分),而把其它的完整性约束条件原则上都归入用户定义完整性之中。商品化RDBMS都提供了定义和检查实体完整性、参照完整性和用户定义的完整性的功能。对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。5.3.2完整性控制实现参照完整性要考虑的问题:(1)外键的空值问题(2)被参照关系中删除

1 / 122
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功