
[工学]第6章数据库原理及应用.ppt
161页第6章 数据库保护 6.1 数据库保护概述6.2 数据库的安全性6.3 数据库完整性6.4 数据库的并发控制6.5 数据库恢复小结习题6 第6章 数据库保护 6.1.1 数据库遭受破坏的主要原因一个组织或单位把存储在数据库中的数据(信息)看成是具有相当经济价值和社会效益的财富对于使用数据库技术进行信息管理的组织而言,它们的业务工作或生产活动能否非常连续地开展,完全取决于数据库的正确性、可用性和可持续性6.1 数据库保护概述第6章 数据库保护 可以想象,一个银行数据库一旦遭到不可恢复的严重破坏,其后果是不堪设想的,它的账目将会部分或全部地丢失或搞乱,这不仅使银行业务无法进行,而且更重要的是银行要蒙受巨大的经济损失一个民航公司的数据库系统若因故障几天不能恢复正常,那么相关的航班业务也许会被停顿几天一个军事数据库失密或破坏,有可能造成重大的流血事件,甚至危及国家安全一个数据不准确的医疗数据库可能会造成不可挽回的医疗事故第6章 数据库保护 由于数据库是众多用户的共享系统,因此受到破坏和威胁的危险性就比较大因而对其实施保护的问题也就显得十分必要了共享程度越高,保护问题就越加重要数据库保护与计算机系统环境的保护是紧密相联系的,因此这个问题需要在更大的范围内才能彻底解决。
它将涉及到所处的环境、计算机硬件和软件、信息和通信设施等多方面的保护问题,以及必要的法律手段例如,计算机要安装在安全可靠的地方,软件和硬件设备应提供多种自我保护措施,以预防、发现和修复系统故障所有这些措施对数据库的保护无疑都具有重大的决定性意义 第6章 数据库保护 综上所述,在现代信息社会,数据库是十分重要的资源,必须保证其安全可靠的运行一般引起数据库系统遭受破坏的主要原因有四个方面:(1) 数据库系统的安全性非法用户对数据库的访问将造成信息泄密或非法更改数据库数据2) 数据库的完整性数据库数据的正确可靠和相容是系统正确运行的前提,完整性直接影响关联数据的正确和一致第6章 数据库保护 (3) 并发控制现代数据库应用一般都是多用户共享环境,多个用户同时操作数据库非常普遍,若这种并发操作控制不好,将会造成不可重复读、读脏数据和丢失修改等问题4) 数据库恢复软硬件的故障、计算机病毒、黑客的破坏都会造成数据资源的破坏,为此要有比较可行的恢复策略,一旦出现上述问题,要用最短的时间,花最小的代价把数据库恢复到某一个正确的状态第6章 数据库保护 6.1.2 数据库管理系统对数据库提供的保护措施一般来说,对数据库的破坏来自四个方面:非法用户(未经授权而恶意访问、修改甚至破坏数据库的用户,以及超越权限访问数据库的用户)、非法数据(不符合规定或语义要求的无效数据,一般由用户的误操作引起)、各种故障及多用户的并发访问。
针对以上四种可能对数据库产生破坏的情况,数据库管理系统要采取相应措施对数据库实施保护,具体如下:第6章 数据库保护 (1) 利用权限机制,只允许有合法权限的用户存取所允许的数据(这是6.2节要解决的数据库安全性问题)2) 利用完整性约束防止非法数据进入数据库(这是6.3节要解决的数据库完整性问题)3) 提供并发控制机制,控制多个用户对同一数据的并发操作,以保证多个用户并发访问的顺利进行(这是6.4节要解决的并发控制问题)4) 提供故障恢复能力,以保证在故障排除后,能将数据库中的数据从错误状态恢复到正确状态(这是6.5节要解决的数据库恢复问题) 第6章 数据库保护 6.2 数据库的安全性数据库的安全性是指保护数据库以防止用户不合法的使用所造成的数据泄密、更改或破坏安全性问题不是数据库独有的,任何计算机系统都存在这个问题在数据库系统中,大量数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,从而使得安全问题更为突出系统安全保护措施是否有效是评价数据库系统性能的主要指标之一第6章 数据库保护 一方面,安全性问题和保密问题是密切相关的前者主要涉及数据的存取控制、修改和传播的技术手段,而后者在很大程度上涉及的是法律、政策、伦理等问题。
另一方面,数据库安全性问题是与数据库完整性问题分不开的数据库安全性是保证数据库能否反映现实世界的重要措施,用以防止非法使用数据库中的数据,防止错误数据的输入和输出完整性措施的防范对象是不合语义的数据 可见,安全性是针对未授权用户而采取的数据保护措施,而完整性是针对授权用户而采取的数据保护措施本节主要讨论数据库的安全性和安全机制问题 第6章 数据库保护 6.2.1 数据库的安全保密方式数据库的安全保密方式涉及系统处理和物理两个方面所谓物理是指,对于强行逼迫透漏口令、在通信线路上窃听以至盗窃存储设备等行为而采取的将数据编为密码,加强防卫以识别用户身份和保护存储设备等措施,它不在本节讨论之列这里只讨论计算机系统中采取的保护措施一般计算机系统中,安全措施往往是一级一级层层设置的,其模型如图6.1所示第6章 数据库保护 图6.1 计算机系统安全模型第6章 数据库保护 在这个安全模型中,用户要求进入计算机时,系统首先根据输入的用户标识进行用户身份鉴别,只有合法用户才准许进入计算机系统对已进入系统的用户,DBMS还要设置很多访问限制,例如自由存取控制(DAC)和强制存取控制(MAC),并只允许用户进行合法操作。
操作系统一级也有自己的保护措施,它主要是基于用户访问权限的访问控制数据还可以以密码形式存储到数据库中第6章 数据库保护 6.2.2 数据库安全控制数据库安全性控制就是防止非法用户对未被授权的数据进行访问计算机系统在安全性方面规定了保密性、完整性、可用性的要求如前所述,这些安全目标在所有的信息系统中都有不同程度的反映例如,在一个工资系统中,保密性防止雇员发现老板的薪水;完整性防止雇员修改其薪水;而可用性保证按时发放薪水 第6章 数据库保护 1.用户标识和鉴别用户身份鉴别(Authentication)是系统提供的最外层安全保护措施,其方法是系统提供一定的方式让用户标识自己的名字或身份,系统经过核实,通过鉴定后才提供机器使用权用户标识和鉴别的方法有很多种,而且在一个系统中往往多种方法并存,以获得更强的安全性常用的方法有: 第6章 数据库保护 (1) 利用只有用户知道的信息鉴别用户用户以用户名或者用户标识来表明用户身份,系统鉴别用户是否是合法用户,若是,则可以进行下一步核实鉴别;若不是,则不允许用户使用计算机口令(Password)是使用最广泛的一种标识为了进一步核实用户,系统常常要求用户输入口令。
为保密起见,用户在终端上输入的口令不显示在屏幕上系统利用一个专门的鉴别机构(其内部记录着所有合法用户的用户名和标识)对用户名和标识(即口令)进行处理,系统核对口令以鉴别用户身份第6章 数据库保护 虽然用用户名和口令来鉴别用户的方法简单易行,但有企图的冒名顶替者可能猜中或者偷窃到口令,因此,有必要对口令加以保护如增加口令的长度,以增加猜中口令的时间;系统提供随机数,用户根据预先定义好的某一过程或者函数进行计算,系统根据用户的计算结果是否正确进一步鉴定用户身份等通常,用户标识和鉴定可重复多次 第6章 数据库保护 2.存取控制存取控制是数据库管理系统级的安全措施,也是杜绝数据库被非法访问的主要方法数据库安全性所关心的主要问题是DBMS的存取控制机制数据库安全最重要的一点就是确保授权给有资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现第6章 数据库保护 存取控制机制主要包括两部分:(1) 访问权限控制所谓用户访问权限控制,是指不同的用户对于不同的数据对象允许执行的操作权限,由它指明数据对象被授予的操作类型、授权粒度(例如,表、列或者行等) (2) 合法权限检查。
每当用户发出存取数据库的操作请求后(请求一般包括操作类型、操作对象和操作用户等信息),DBMS查找数据字典,根据安全性规则进行合法权限检查,若用户的操作超出定义权限,系统将拒绝执行此操作第6章 数据库保护 授权编译程序和合法权限检查机制一起组成了安全性子系统授权定义中,数据对象范围越小,授权子系统就越灵活衡量授权子系统优劣程度的另一个尺度是能否提供与数据值有关的授权第6章 数据库保护 现在的DBMS一般同时支持自由访问控制和强制访问控制两种数据安全性控制方法自由访问控制允许对于不同的数据对象,用户有不同的权利;也允许对于同一数据对象,不同的用户可以有不同的权利;还允许用户权限具有传递性因此,自由访问控制非常灵活强制访问控制允许对用户及其访问的数据分别进行分组归类(数据按机密程度划分为若干密级,如绝密(Top Secret)、机密(Secret)、秘密(Confidential)、一般(Public)等),而用户根据密级和分类的组合来定义自己的安全级别强制访问控制明确地限定每组用户能够访问的数据类别,并且不同类别的数据之间不能互相移动,因此,强制访问控制非常严格第6章 数据库保护 自由访问控制按其访问粒度又可以划分为6类:整个数据库、某些关系的集合、一个关系、一个关系中的某些列、一个关系中的某些行和一个关系中的某些行中的某些列。
自由访问控制通过授权的形式来实现,而授权是指DBMS赋予用户一定的访问特权,它是对用户访问权限的规定和限制用户对数据库的各种操作可以有多种授权形式,如Read授权、Insert授权、Updata授权和Delete授权等用户还可以获得对数据库模式进行修改的授权,如Index授权、Resource授权、Alteration授权和Drop授权具有某种权限的用户还可以把权限传递给其他用户,但必须记录权限的传递,以便能够在将来收回授权第6章 数据库保护 在关系数据库中,访问控制没有使用基本的SQL操作SQL语言提供了授权与取消授权的GRANT语句和REVOKE语句基本的SQL操作还包括DELETE、INSERT、SELECT、UPDATA权限其中,数据对象的创建者自动获得关于数据对象的所有操作权限SQL-92标准定义了数据库模式的基本授权机制:只有模式的所有者才能对模式进行修改因此,模式的修改(如关系的创建和删除、增加和删除关系中的某些列以及增加或去除索引)只能由模式的所有者来执行 第6章 数据库保护 自由访问控制存在的不足之处是:如果用户获取了某个WITH GRANT OPTION的特权,他就可以把它授予任何人,这是不安全的,在某些情况下是不允许的。
第6章 数据库保护 强制访问控制基于的是与每个数据项和每个用户关联的安全标记(Security Label)安全标记被分成若干个级别数据的标记称为密级(Security Classification),用户的标记称为许可证级别(Security Clearance)在计算机系统中,每个运行的程序继承用户的许可证级别也就是说,用户的许可证级别不仅应用于用户,而且应用于用户运行的所有程序当某一用户以某一密级进入系统时,在确定该用户能够访问系统上的数据时应遵循以下规则:当且仅当用户的许可证级别大于或等于数据密级时,该用户才能对数据进行写操作;当且仅当用户的许可证级别等于数据密级时,该用户才能对数据进行读操作第6章 数据库保护 DBMS在执行安全性检查时,首先检查DAC(自由存取控制),然后对通过DAC检查并且有访问许可的数据对象进行MAC(强制存取控制)检查,只有通过MAC检查的数据对象才可以进行访问因此,实现DBMS的安全性时,在实现MAC之前先实现DAC,即DAC和MAC共同构成DBMS的安全机制第6章 数据库保护 3.审计(Audit)前面介绍的用户标识与鉴别、存取控制仅是安全性指标的一个重要方面,但并不是全部。
为了使DBMS达到一定的安全级别,还需要在其他方面提供相应的支持因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃、破坏数据的人总是想方设法打破控制审计功能把用户对数据库的所有操作自动记录下来放入审计日。
