第六章数据库系统安全数据库安全是一个广阔的领域,从传统的备份与恢复,认证与访问控制,到数据存贮和通信环节的加密,它作为操作系统之上的应用平台,其安全与网络和主机安全息息相关,本章着重从数据库安全管理和内部自身安全的角度讨论相关问题。6-1数据库安全概述6.1.1数据库系统安全简介数据库系统,一般可以理解成两部分:一部分是数据库,按一定的方式存取数据;另一部分是数据库管理系统(DBMS),为用户及应用程序提供数据访问,并具有对数据库进行管理、维护等多种功能。要访问某个数据库,必须首先能够以直接或间接的方式访问正在运行该数据库的计算机系统。因此要使数据库安全,首先要使运行数据库的操作系统和网络环境安全。由此可知数据库系统安全包含两层含义,即系统运行安全和系统信息安全。6-1-2常见的数据库安全问题及原因下面就讲述一下可能危及数据库安全的常见因素:1.脆弱的帐号设置2.缺乏角色分离3.缺乏审计跟踪4.未利用的数据库安全特征6-1-3数据库安全管理原则一个强大的数据库安全系统应当确保其中信息的安全性并对其有效地控制。下面列举的原则有助于数据库信息资源的有效保护。1.管理细分和委派原则2.最小权限原则3.帐号安全原则4.有效的审计6-2数据库安全技术6-2-1数据库安全的基本架构数据库系统信息安全性依赖于两个层次:一层是数据库管理系统本身提供的用户名/口令字识别、视图、使用权限控制、审计等管理措施,大型数据库管理系统Oracle、Sybase、Ingress等均有此功能;另一层就是靠应用程序设置的控制管理,如使用普遍的Foxbase、Forpro等。作为数据库用户,最关心自身数据资料的安全,特别是用户的查询权限问题。6-2-1数据库安全的基本架构(续)目前一些大型数据库管理系统(如Oracle、Sybase等产品)提供了以下几种主要手段。1.用户分类2.数据分类3.审计功能6-2-2数据库的加密一般而言,数据库系统提供的上述基本安全技术能够满足一般的数据库应用,但对于一些重要部门或敏感领域的应用,仅靠上述这些措施是难以完全保证数据的安全性,某些用户尤其是一些内部用户仍可能非法获取用户名、口令字,或利用其他方法越权使用数据库,甚至可以直接打开数据库文件来窃取或篡改信息。因此,有必要对数据库中存储的重要数据进行加密处理,以实现数据存储的安全保护。6-2-2数据库的加密(续)1.数据库密码系统的基本流程2.数据库加密的特点3.加密机制4.加密算法5.数据库加密的范围6.数据库加密对数据库管理系统原有功能的影响6-3死锁、活锁和可串行化数据库的重要特征是它能为多个用户提供数据共享。为了充分利用数据库资源,应允许多个用户并行操作数据库。数据库必须能对这种并行操作进行控制,即并发控制,以保证数据在不同的用户使用时的一致性和保证并发事务的隔离性。数据库的并发控制以事务为单位,通常使用封锁技术实现并发控制。并发控制机制调度并发事务操作是否正确的判别准则是可串行性。用封锁技术可以解决并行操作的数据一致性问题,但同操作系统中一样,可能出现死锁和活锁。6-3死锁、活锁和可串行化(续)下面就介绍在数据库系统中活锁、死锁及其串行化的基本知识。1.活锁2.死锁死锁的诊断与解除的方法。①超时法②等待图法3.可串行化6-4数据库备份与恢复数据库的备份是一个长期的过程,而恢复只在发生事故后进行,恢复可以看作是备份的逆过程,恢复的程度的好坏很大程度上依赖于备份的情况。下面就对数据库备份和恢复的基本知识进行说明。1.备份所谓备份,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。通常也将存放于转储设备中的数据库的拷贝称为原数据库的备份或转储。6-4数据库备份与恢复(续)Oracle数据库的备份分为物理备份和逻辑备份两种。物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。可以使用Oracle的恢复管理器(RecoveryManager,RMAN)或操作系统命令进行数据库的物理备份。逻辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。Oracle提供的逻辑备份工具是EXP。6-4数据库备份与恢复(续)数据库逻辑备份是物理备份的补充。根据在物理备份时数据库的状态,可以将备份分为一致性备份(consistentbackup)和不一致性备份(inconsistentbackup)两种:(1)一致性备份(2)不一致性备份6-4数据库备份与恢复(续)2.恢复所谓恢复,就是把数据库由存在故障的状态转变为无故障状态的过程。根据出现故障的原因,恢复分为两种类型:(1)实例恢复这种恢复是Oracle实例出现失败后,Oracle自动进行的恢复。(2)介质恢复这种恢复是当存放数据库的介质出现故障时所做的恢复。6-4数据库备份与恢复(续)根据数据库的恢复程度,将恢复方法分为两种类型:(1)完全恢复(2)不完全恢复:6-5数据库系统安全保护实例6-5-1Oracle数据库安全策略随着计算机网络应用的普及和提高,Oracle数据库、应用在各个领域日新月异,它性能优异,操作灵活方便,是目前数据库系统中受到广泛青睐的几家之一。然而,随着应用的深入,数据信息的不断增加,数据库的安全性问题已提到了一个十分重要的议事日程上,它是数据库管理员日常工作中十分关注的一个问题。由于计算机软、硬件故障,导致数据库系统不能正常运转,造成大量数据信息丢失,甚至使数据库系统崩溃。6-5-1Oracle数据库安全策略如何保证Oracle数据库具有较高的安全性1.用户角色的管理2.数据保护6-5-2Oracle数据库备份要对Oracle数据库备份与恢复有清晰的认识,首先有必要对数据库的几种运行状态有充分的了解。Oracle数据库的运行状态主要分为3种,他们依次为:(l)Nomount(非安装)(2)Mount(安装)(3)Open(打开)6-5-2Oracle数据库备份(续)数据库的备份是数据库管理员必须不断要进行的一项工作,Oracle数据库的备份方法很多,比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等。各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。下面就分析用export实用程序导出数据库对象、Oracle冷备份、Oracle热备份这三种最基本的备份方法各自的优缺点和适用的场合,并给出自动执行这些备份方案的脚本文件。6-5-2Oracle数据库备份(续)1.三种备份方案的比较(1)冷备份(2)热备份(3)Export导出数据库对象6-5-2Oracle数据库备份(续)2.三种备份方案的实施(1)冷备份方案的实施(2)热备份方案的实施(3)使用export作为备份策略6-5-3Oracle数据库系统的恢复数据库的恢复可分为两大类:完全恢复和不完全恢复为了系统的设计数据库的恢复方案,我们先对可能遇到的错误进行分类,Oracle数据库错误主要分为5大类:(1)SQL语句失败(2)线程失败(3)实例失败(4)用户操作失败(5)存储设备失败6-5-3Oracle数据库系统的恢复(续)如果发生前三种失败,不需要人为干涉,Oracle系统会自动进行恢复。对于用户操作型的失败(如误删除数据),我们采取的补救措施主要有导入最新的逻辑备份或进行到某一时间点的不完全恢复。从Oracle8之后的新版本中引入了基于表空间的时间点恢复(TSPITR),可以单独将包含错误操作的表空间恢复到指定时间,而不必对整个数据库进行不完全恢复。当错误操作发现比较及时而且数据量不大的情况下也可以考虑使用logminer生成反向SQL。