计算机安全技术数据库系统安全8.1数据库安全概述8.1.1简介数据库,形象上讲就是若干数据的集合体。这些数据存在于计算机的外存储器上,而且不是杂乱无章地排列的。数据库数据量庞大、用户访问频繁,有些数据具有保密性;因此数据库要由数据库管理系统(DBMS)进行科学地组织和管理,以确保数据库的安全性和完整性。8.1.2数据库的特性面对数据库的安全威胁,采取有效的安全措施分为两个方面,即支持数据库的操作系统和同属于系统软件的DBMS。后者的安全使用特性有以下几点要求:1.多用户2.高可用性3.频繁的更新4.大文件计算机安全技术数据库系统安全8.1数据库安全概述8.1.3数据库安全系统特性1.数据独立性(1)物理独立性(2)逻辑独立性2.数据安全性比较完整的数据库对数据安全性采取以下措施:(1)将数据库中需要保护的部分与其他部分相隔离;(2)使用授权规则。这是数据库系统经常使用的一个办法,数据库给用户ID号和口令、权限。当用户用此ID号和口令登录后,就会获得相应的权限。不同的用户或操作会有不同的权限。比如,对于一个表,某人有修改权,而其他人只有查询权;(3)将数据加密,以密码的形式存于数据库内。计算机安全技术数据库系统安全8.1数据库安全概述3.数据的完整性数据完整性这一术语用来泛指与损坏和丢失相对的数据状态。它通常表明数据在可靠性与准确性上是可信赖的,同时也意味着数据有可能是无效的或不完整的。数据完整性包括数据的正确性、有效性和一致性。4.并发控制如果数据库应用要实现多用户共享数据,就可能在同一时刻多个用户要存取数据,这种事件叫做并发事件。当一个用户取出数据进行修改,在修改存人数据库之前如有其他用户再取此数据,那么读出的数据就是不正确的。这时就需要对这种并发操作施行控制,排除和避免这种错误的发生;保证数据的正确性。计算机安全技术数据库系统安全8.2数据库的数据保护5.故障恢复当数据库系统运行时出现物理或逻辑上的错误时,如何尽快将它恢复正常,这就是数据库系统的故障恢复功能。8.2.1数据库的故障类型这里数据库的故障是指从保护安全的角度出发,数据库系统中会发生的各种故障。这些故障主要包括:事务内部的故障、系统范围内的故障、介质故障、计算机病毒与黑客等。8.2.2数据库的数据保护数据库保护主要是指数据库的安全性、完整性、并发控制和数据库恢复。计算机安全技术数据库系统安全8.2数据库的数据保护1.数据库的安全性2.数据的完整性数据的完整性主要是指防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。数据完整性包括数据的正确性、有效性和一致性。计算机安全技术数据库系统安全8.2数据库的数据保护3.数据库并发控制目前,多数数据库都是大型多用户数据库,所以库中的数据资源必须是共享的。为了充分利用数据库资源,应允许多个用户并行操作的数据库。数据库必须能对这种并行操作进行控制,即并发控制,以保证数据在不同的用户使用时的一致性。并发控制的主要方法是封锁技术(Locking)。当事务1修改数据时,将数据封锁,这样在事务1读取和修改数据时,其它的事务就不能对数据进行读取和修改,直到事务1解除封锁。计算机安全技术数据库系统安全8.3死锁、活锁和可串行化8.3.l死锁与活锁封锁的控制方法有可能会引起死锁和活锁的问题。某个事务永远处于等待状态称为活锁解决活锁的最常见方法是对事务进行排队,按“先入先出”的原则进行调度。两个或两个以上的事务永远无法结束;彼此都在等待对方解除封锁,结果造成事务永远等待,这种封锁叫做死锁。数据库解决死锁问题的主要方法有以下几种:(1)求每个事务一次就将所有要使用的数据全部加锁,否则就不能执行。(2)预先规定一个封锁顺序;所有的事务都必须按这个顺序对数据执行封锁。(3)不预防死锁的发生,而是让系统用某种方法判断当前系统中是否有死锁现象。计算机安全技术数据库系统安全8.3死锁、活锁和可串行化8.3.2可串行化并行事务执行时,系统的调度是随机的,因此,需要一个尺度去判断事务执行的正确性。当并行操作的结果与串行操作的结果相同时,我们则认为这个并行事务处理结果是正确的。这个并行操作调度称为可串行化调度。可串行化是并行事务正确性的准则。这个准则规定;一个给定的交叉调度,当且仅当它是可串行化的,才认为是正确的。8.3.3时标技术时标技术是避免因出现数据不一致而造成的破坏数据库的完整性的另外一种方法。由于它不是采用封锁的方法,所以不会产生死锁的问题。计算机安全技术数据库系统安全8.3死锁、活锁和可串行化在事务运行时,它的启动时间就是事务的时标。如果两个事务T1、T2的时标分别为t1与t2,若t1>t2则称t1是年轻的事务,t2是年长的事务。时标和封锁技术之间的基本区别是:封锁是使一组事务的并发执行(即交叉执行)同步,使它等价于这些事务的某一串行操作;时标法也是使一组事务的交叉执行同步,但是它等价于这些事务的一个特定的串行执行,即由时标的时序所确定的一个执行。如果发生冲突;则通过撤消并重新启动一个事务解决。如果事务重新启动;则赋予新的时标。计算机安全技术数据库系统安全8.4数据库的备份与恢复8.4.1数据库的备份数据库的备份大致有三种类型:冷备份、热备份和逻辑备份。1.冷备份冷备份的思想是关闭数据库,在没有最终用户访问它的情况下将其备份。2.热备份热备份是在数据库更新正在被写人的数据时进行。热备份严重依赖日志文件。3.逻辑备份逻辑备份使用软件技术从数据库提取数据并将结果写人一个输出文件。计算机安全技术数据库系统安全8.4数据库的备份与恢复8.4.2制定备份的策略备份不是实时的,备份应该什么时候做,用什么方式做,这主要取决于数据库的不同规模和不同的用途。备份主要考虑以下的几个因素:(1)备份周期,是按月、周、天、还是小时;(2)使用冷备份还是热备份;(3)使用增量备份还是全部备份,或者两者同时使用;(增量备份只备份自上次备份后的所有更新的数据。全部备份是完整备份数据库中所有数据。)(4)使用什么介质进行备份;备份到磁盘还是磁带;(5)是人工备份还是设计一个程序定期自动备份;(6)备份介质的存放是否防窃、防磁、防火。计算机安全技术数据库系统安全8.4数据库的备份与恢复8.4.3数据库的恢复恢复也称为重载或重人,是指当磁盘损坏或数据库崩溃时,通过转储或卸载的备份重新安装数据库的过程。1.数据库的恢复大致有如下这些办法:(1)周期性地(如3天一次)对整个数据库进行转储.(2)对数据库的每次修改,都记下修改前后的值;写人“运行日志”数集中。2.利用日志文件恢复事务(1)登记日志文件(2)事务恢复计算机安全技术数据库系统安全8.5SQLServer8.5.1SQLServer功能概述MicrosoftSQLServer是一个高性能的,多用户的关系型数据库管理系统。SQLServer的用户分为四类:系统管理员、数据库拥有者、数据库对象拥有者、数据库用户。8.5.2SQLServer自安全模式SQLServer提供了三种安全管理模式,即标准模式、集成模式和混合模式,数据库设计者和数据库管理员可以根据实际情况进行选择。计算机安全技术数据库系统安全8.5SQLServer8.5.3创建用户和用户组8.5.4权限管理8.5.5SQLServer的备份1.SQLServer的备份类型SQLServer的备份有三种类型:(1)全备份,即完整地备份指定数据库中的全部数据,同时也备份与该数据库相关的事务处理日志。(2)增量备份,即只备份事务处理日志。(3)表(table)备份,2.创建备份计算机安全技术数据库系统安全8.5SQLServer8.5.6SQLServer的恢复1.恢复数据库一般有两种情况需要数据库备份:一种是介质(多数是硬盘)故障或损坏,另一种是数据混乱或数据恶化。有时需要先删除有问题的数据库,然后才能开始重人。(1)删除有缺陷的数据库(2)重入数据库备份2.使用事务处理日志3.恢复master数据库4.恢复丢失的设备