您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第6章计算机安全技术
第6章数据库系统安全6.1数据库安全概述6.2数据库的数据保护6.3死锁、活锁和可串行化6.4数据库的备份与恢复6.5SQLServer数据库安全保护习题6.1数据库安全概述6.1.1简介数据库系统是计算机技术的一个重要分支,从60年代后期开始发展。虽然起步较晚,但近30年来已经形成为一门,应用涉及面很广,几乎所有领域都要用到数据库。数据库,形象上讲就是若干数据的集合体。这些数据存在于计算机的外存储器上,而且不是杂乱无章地排列的。数据库数据量庞大、用户访问频繁,有些数据具有保密性,因此数据库要由数据库管理系统(DBMS)进行科学地组织和管理,以确保数据库的安全性和完整性。很多数据库应用于客户机/服务器(client/server)平台,这已成为90年代主流的计算模式。在server端,数据库由server上的DBMS进行管理。由于client/server结构允许服务器有多个客户端,各个终端对于数据的共享要求非常强烈,这就涉及到数据库的安全性与可靠性问题。例如:在校园网中,各个部门要共用一个或几个服务器,要分别对不同的或相同的数据库进行读取、修改、增删,而且各个部门之间很有可能有进行交叉浏览的需求,但是对于人事部门的资料其他部门就无权进行修改,其他部门的资料人事部门也不能随意修改,另外还要防止一些别有用心的人的蓄意破坏。这就是属于数据库的安全性问题,DBMS必须具备这方面的功能。6.1.2数据库的特性面对数据库的安全威胁,必须采取有效的安全措施。这些措施可分为两个方面,即支持数据库的操作系统和同属于系统软件的DBMS。后者的安全使用特性有以下几点要求:1.多用户尽管网络服务器是用来资源共享的,但其上存储的大多数文件是用来给单用户访问的,而LAN上的数据库却是供多个用户访问的。这就意味着任何数据库管理操作,包括备份,会影响到用户的工作效率,而且是许多用户的工作效率。2.高可用性与多用户的问题相关的是,数据库系统要求被访问和更新的时间长度。虽然办公自动化文件服务器在非工作时间很少进行什么操作,但数据库系统却经常需要运行长的、多的时间以完成批处理任务或为其他时区的用户提供访问。3.频繁的更新文件服务器在白天一般没有大量的磁盘写入操作。一个办公自动化文件被打开之后,可能每隔15分钟该文件的改动被保存一次。如果有250个用户在该服务器上工作,这就意味着,平均每4秒就有一个文件需要被保存。这与每秒要支持50次事务处理的数据库相比是相当少的。4.大文件数据库一般有很多的文件。像文字处理这样的办公自动化应用的文件,平均大小是在5~10KB之间。数据库文件经常有几百KB甚至几个GB。6.1.3数据库安全系统特性1.数据独立性数据独立于应用程序之外。理论上数据库系统的数据独立性分为两种:(1)物理独立性:数据库的物理结构的变化不影响数据库的应用结构,从而也就不能影响其相应的应用程序。这里的物理结构是指数据库的物理位置、物理设备等。(2)逻辑独立性:数据库逻辑结构的变化不会影响用户的应用程序,数据类型的修改、增加、改变各表之间的联系都不会导致应用程序的修改。这两种数据独立性都要靠DBMS来实现。到目前为止,物理独立性已经能基本实现,但逻辑独立性实现起来非常困难,数据结构一旦发生变化,一般情况下,相应的应用程序都要作或多或少的修改。追求这一目标也成为数据库系统结构复杂的一个重要原因。2.数据安全性一个数据库能否实现防止无关人员得到他不应该知道的数据,是数据库是否实用的一个重要指标。如果一个数据库对所有的人都公开数据,那么这个数据库就不是一个可靠的数据库。一般,比较完整的数据库对数据安全性采取以下措施:(1)将数据库中需要保护的部分与其他部分相隔离;(2)使用授权规则。这是数据库系统经常使用的一个办法,数据库给用户ID号和口令、权限。当用户用此ID号和口令登录后,就会获得相应的权限。不同的用户或操作会有不同的权限。比如,对于一个表,某人有修改权,而其他人只有查询权;(3)将数据加密,以密码的形式存于数据库内。3.数据的完整性数据完整性这一术语用来泛指与损坏和丢失相对的数据状态。它通常表明数据在可靠性与准确性上是可信赖的,同时也意味着数据有可能是无效的或不完整的。数据完整性包括数据的正确性、有效性和一致性。(1)正确性:数据在输入时要保证其输入值与定义这个表时相应的域的类型一致。如表中的某个字段为数值型,那么它只能允许用户输入数值型的数据,否则不能保证数据库的正确性。(2)有效性:在保证数据正确的前提下,系统还要约束数据的有效性。例如:对于月份字段,若输入值为16,那么这个数据就是无效数据,这种无效输入也称为“垃圾输入”。当然,若数据库输出的数据是无效的,相应称为“垃圾输出”。(3)一致性:当不同的用户使用数据库,应该保证他们取出的数据必须一致。因为数据库系统对数据的使用是集中控制的,因此数据的完整性控制还是比较容易实现的。4.并发控制如果数据库应用要实现多用户共享数据,就可能在同一时刻多个用户要存取数据,这种事件叫做并发事件。当一个用户取出数据进行修改,在修改存入数据库之前如有其他用户再取此数据,那么读出的数据就是不正确的。这时就需要对这种并发操作施行控制,排除和避免这种错误的发生,保证数据的正确性。5.故障恢复当数据库系统运行时出现物理或逻辑上的错误时,如何尽快将它恢复正常,这就是数据库系统的故障恢复功能。6.1.4数据库管理系统DBMS(databasemanagementsystem)是一个专门负责数据库管理和维护的计算机软件系统。它是数据库系统的核心,对数据库系统的功能和性能有着决定性影响。DBMS不但负责数据库的维护工作,还要按数据库管理员的要求保证数据库的安全性和完整性。DBMS的主要职能为:有正确的编译功能,能正确执行规定的操作能正确执行数据库命令保证数据的安全性、完整性,能抵御一定程度的物理破坏,能维护和提交数据库内容能识别用户,分配授权和进行访问控制,包括身份识别和验证顺利执行数据库访问,保证网络通信功能另一方面,数据库的管理不但要靠DBMS,还要靠人员。这些人员主要是指管理、开发和使用数据库系统的数据管理员(DBA,databaseadministrator)、系统分析员、应用程序员和用户。用户是对应用程序员设计的应用程序模块的使用,系统分析员负责应用系统的需求分析和规范说明,而且要和用户及DBA相结合,确定系统的软硬件配置并参与数据库各级应用的概要设计。这些人中最重要的是DBA,他们负责全面地管理和控制数据库系统,具体的职责包括:决定数据库的信息内容和结构决定数据库的存储结构和存取策略定义数据的安全性要求和完整性约束条件DBA的重要职责是确保数据库的安全性和完整性。不同用户对数据库的存取权限、数据的保密级别和完整性约束条件也应由DBA负责决定监督和控制数据库的使用和运行DBA负责监视数据库系统的运行,及时处理运行过程中出现的问题。尤其是遇到硬件、软件或人为故障时,数据库系统会因此而遭到破坏,DBA必须能够在最短时间内把数据库恢复到某一正确状态,并且尽可能不影响或少影响计算机系统其他部分的正常运行。为此,DBA要定义和实施适当的后援和恢复策略,例如周期性转储数据、维护日志文件等。数据库系统的改进和重组6.2数据库的数据保护6.2.1数据库的故障类型这里数据库的故障是指从保护安全的角度出发,数据库系统中会发生的各种故障。这些故障主要包括:事务内部的故障、系统范围内的故障、介质故障、计算机病毒与黑客等。1.事务内部的故障事务(Transaction)是指并发控制的单位,它是一个操作序列。在这个序列中的所有操作只有两种行为,要么全都执行,要么全都不执行。因此,事务是一个不可分割的单位。事务以COMMIT语句提交给数据库,以ROLLBACK作为对已经完成的操作撤消。事务内部的故障多发生于数据的不一致性,主要表现为以下几种:(1)丢失修改:两个事务T1和T2读入同一数据,T2的提交的结果破坏了T1提交的结果,T1对数据库的修改丢失,造成数据库中数据错误。(2)不能重复读:事务T1读取某一数据,事务T2读取并修改了同一数据,T1为了对读取值进行校对再读取此数据,便得到了不同的结果。例如:T1读取数据B=200,T2也读取B并把它修改为300,那么T1再读取数据B得到300与第一次读取的数值便不一致。(3)“脏”数据的读出,即不正确数据的读出。T1修改某一数据,T2读取同一数据,但T1由于某种原因被撤消,则T2读到的数据为“脏”数据。例如:T1读取数据B值为100修改为200,则T2读取B值为200,但由于事务T1被撤消,其所做的修改宣布无效,B值恢复为100,而T2读到的数据是200,与数据库内容不一致。2.系统范围内的故障系统故障又称软故障,是指系统突然停止运行时造成的数据库故障。如CPU故障、突然断电、操作系统故障,这些故障不会破坏数据库,但会影响正在运行的所有事务,因为数据库缓冲区中的内容会全部丢失,运行的事务非正常终止,从而造成数据库处于一种不正确的状态。这种故障对于一个需要不停运行的数据库来讲损失是不可估量的。恢复子系统必须在系统重新启动时让所有非正常终止事务ROLLBACK,把数据库恢复到正确的状态。3.介质故障介质故障又称硬故障,主要指外存故障,如:磁盘磁头碰撞,瞬时的强磁场干扰。这类故障会破坏数据库或部分数据库,并影响正在使用数据库的所有事务。所以,这类故障的破坏性很大。4.计算机病毒与黑客病毒是一种计算机程序,然而这种程序与其它程序不同的是它的功能在于破坏计算机中的数据,破坏计算机使计算机处于一种不正确的状态,妨碍计算机用户的使用。而且病毒具有自我繁殖的能力,传播速度很快。有些病毒一旦发作就会马上摧毁系统。针对计算机病毒,现在已出现了许多种防毒和杀毒的软、硬件。但病毒发作后造成的数据库数据的损坏还是需要操作者去恢复的。各种故障可能会造成数据库本身的破坏,也可能不破坏数据库,但使得数据不正确。对于数据库的恢复,其原理就是“冗余”,即数据库中的任何一部分数据都可以利用备份在其它介质上的冗余数据进行重建。这种恢复的原理非常简单,但要付出时、空代价。黑客与病毒不同,是近年来新出现的名词。从某种角度来讲,黑客的危害要比计算机病毒更大。黑客往往是一些精通计算机网络和软、硬件的计算机操作者。他们利用一些非法手段取得计算机的授权,非法却又随心所欲地读取甚至修改其它计算机数据,造成巨大的损失。对于黑客,更需要计算机数据库加强安全管理。这种安全管理对于那些机密性的数据库显得尤为重要。6.2.2数据库的数据保护前面我们较细致地讨论了数据库系统的故障问题。随着计算机越来越深入地使用,一些大型数据库中存储着大量机密性的信息,如国防、金融、军事等方面。若这些数据库中的数据遭到破坏,造成的损失难以估量。所以数据库的保护是数据库运行过程中一个不可忽视的方面。数据库系统必须建立自己的保护机制,提供数据保护功能。数据库保护主要是指数据库的安全性、完整性、并发控制和数据库恢复。1.数据库的安全性安全性问题是所有计算机系统共有的问题,并不是数据库系统特有的,但由于数据库系统数据量庞大且多用户存取,安全性问题就显得尤其突出。由于安全性问题有系统问题与人为问题,所以一方面我们可以从法律、政策、伦理、道德等方面控制约束人们对数据库的安全使用,另一方面还可以从物理设备、操作系统等方面加强保护,保证数据库的安全。另外,也是我们要论述的,可以从数据库本身实现数据库的安全性保护。在一般的计算机系统中,安全措施是一级一级、层层设置的。其安全控制模型可以由下图6.1表示。(1)用户标识和鉴定通过核对用户的名字或身份(ID),决定该用户对系统的使用权。数据库系统不允许一个未经授权的用户对数据库进行操作。系统让用户用身份和口令登录时,系统用一张用户口令表去鉴别用户身份。表中只有两个字段:用户名和口令。并且用户输入的口令并不显示在屏幕上或以某种符号代替,如“*”号。系统根据用户的输入鉴别此用户是否为合法用户。这种方法简便易行,但保密性不是很高。图6.1另外一种标识鉴定的方
本文标题:第6章计算机安全技术
链接地址:https://www.777doc.com/doc-1267292 .html