您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第11章数据库的安全保护
数据库原理与应用(Oracle版)人民邮电出版社2第11章数据库的安全保护11.1数据库的安全性11.2数据库的完整性控制11.3数据库的并发性控制11.4数据库的备份与恢复技术11.1数据库的安全性问题的提出数据库的一大特点是数据可以共享数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据人民邮电出版社3数据库安全性11.1数据库的安全性计算机系统安全性为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。三类计算机系统安全性问题技术安全类管理安全类政策法律类人民邮电出版社411.1数据库的安全性TCSEC/TDI安全级别划分人民邮电出版社511.1数据库的安全性计算机系统中,安全措施是一级一级层层设置。人民邮电出版社6计算机系统的安全模型11.1数据库的安全性数据库安全性控制的常用方法用户标识和鉴定存取控制视图审计密码存储人民邮电出版社711.1数据库的安全性用户标识与鉴别(Identification&Authentication)系统提供的最外层安全保护措施用户标识口令系统核对口令以鉴别用户身份用户名和口令易被窃取每个用户预先约定好一个计算过程或者函数人民邮电出版社811.1数据库的安全性存取控制机制组成定义用户权限合法权限检查用户权限定义和合法权检查机制一起组成了DBMS的安全子系统人民邮电出版社911.1数据库的安全性常用存取控制方法自主存取控制(DiscretionaryAccessControl,简称DAC)C2级灵活强制存取控制(MandatoryAccessControl,简称MAC)B1级严格人民邮电出版社1011.1数据库的安全性自主存取控制方法通过SQL的GRANT语句和REVOKE语句实现用户权限组成数据对象操作类型定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作定义存取权限称为授权人民邮电出版社1111.1数据库的安全性数据加密数据加密是防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据(明文)变换为不可直接识别的格式(密文),从而使得不知道解密算法的人即使获取了密文无法获知原文。加密的方法有两种:替换方法(使用密匙)和置换方法(按不同的顺序从新排列)。人民邮电出版社1211.1数据库的安全性审计管理审计功能把用户对数据库的所有操作自动记录下来,存放在审计日志中。DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。人民邮电出版社1311.1数据库的安全性Oracle系统的安全措施Oracle11g的安全性体系1)物理层的安全性2)用户层的安全性3)操作系统的安全性4)网络层的安全性5)数据库系统层的安全性Oracle11g的安全性机制系统安全机制数据安全机制人民邮电出版社1411.2数据库的完整性控制数据库系统提供的监测机制,确保存储数据的规范,称为完整性保护实体完整性域完整性参照完整性用户定义完整性人民邮电出版社1511.2数据库的完整性控制1)实体完整性(EntityIntegrity)若属性A是关系R的主属性,则属性A不能取空值且取值唯一;就是一个关系模型中的所有元组都是惟一的,没有两个完全相同的元组,也就是一个二维表中没有两个完全相同行,也称为行完整性。人民邮电出版社16例:学生(学号,姓名,性别,专业号,年龄)11.2数据库的完整性控制域完整性对关系R中属性(列)数据的规范,限制属性的数据类型、格式以及取值范围。就是对表中列数据的规范,也称列完整性,用于限制列的数据类型、格式以及取值范围。人民邮电出版社1711.2数据库的完整性控制参照完整性在关系模型中实体及实体间的联系都是用关系来描述的,因此存在着关系与关系间的引用。参照完整性是通过定义外键来(存在或为空)建立的。例1学生实体、专业实体学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)学生关系引用了专业关系的主码“专业号”。学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。北京科技大学通信工程系1811.2数据库的完整性控制用户定义的完整性针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求例:工龄年龄学生成绩=0北京科技大学通信工程系1911.3数据库的并发性控制事务事务(Transaction)是用户定义的一个数据库操作序列,这些执行全部操作,要么一个操作都不执行,是一个不可分割的工作单元。一个事务由应用程序中的一组操作序列组成,在关系型数据库中,它可以是一条SQL语句、一组SQL语句或一个程序段。事务是这样一种机制,它确保多个SQL语句被当作单个工作单元来处理。人民邮电出版社2011.3数据库的并发性控制在SQL语言中,事务控制的语句有:BEGINTRANSACTION、COMMIT、ROLLBACK。如果用户没有指明事务的开始和结束,DBMS按缺省规定自动划分事务。用户以BEGINTRANSACTION开始事务,以COMMIT或ROLLBACK结束事务。COMMIT表示提交事务,用于正常结束事务。ROLLBACK表示回滚,在事务执行过程中发生故障,事务不能继续,撤消事务中所有已完成的操作,回到事务开始的状态。人民邮电出版社2111.3数据库的并发性控制事务具有四个特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)简称为ACID特性人民邮电出版社2211.3数据库的并发性控制并发控制的原理和方法人民邮电出版社2311.3数据库的并发性控制并发控制方法主要有:封锁(Locking)方法时间戳(TimeStamp)方法乐观(Optimistic)方法本章主要介绍在DBMS中使用较多的封锁方法。人民邮电出版社2411.3数据库的并发性控制照锁的权限来分,基本的封锁类型有两种:排它锁(ExclusiveLocks,简记为X锁)排它锁又称为写锁。如果事务T对某个数据D(可以是数据项、记录、数据集乃至整个数据库)加上X锁,那么只允许T读取和修改D,其它任何事务都不能再对D加任何类型的锁,直到T释放D上的锁。这就保证了其它事务在T释放D上的锁之前不能再读取和修改A。共享锁(ShareLocks,简记为S锁)共享锁又称为读锁。若事务T对某个数据D加上S锁,则事务T可以读D,但不能修改D,其它事务只能再对D加S锁,而不能加X锁,直到T释放D上的S锁。这就保证了其它事务可以读D,但在T释放D上的S锁之前其它事务不能对D做任何修改。人民邮电出版社2511.3数据库的并发性控制封锁协议1)一级封锁协议事务T在修改数据D之前必须先对其加X锁,直到事务结束(包括正常结束COMMIT和非正常结束ROLLBACK)才释放,这称为一级封锁协议。一级封锁协议可防止丢失更新,并保证事务T是可恢复的。2)二级封锁协议二级封锁协议是指在一级封锁协议的基础上,当事务T在读取数据D之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议除防止了丢失更新,还可进一步防止读“脏”数据。由于读完后即可释放S锁,所以不能保证可重复读。人民邮电出版社2611.3数据库的并发性控制封锁协议3)三级封锁协议三级封锁协议是指一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议除防止了丢失更新和不读“脏”数据外,还进一步防止了不可重复读。活锁和死锁人民邮电出版社2711.3数据库的并发性控制Oracle系统的并发控制技术实现Oracle的并发控制需要依赖于封锁机制。按照锁所分配的资源来划分,Oracle中的锁共有3种:DML锁(数据锁);DDL锁(数据字典锁);Internallocksandlatches。人民邮电出版社2811.4数据库的备份与恢复技术任何数据库在长期使用过程中,都会存在一定的安全隐患,例如,由于数据库的物理结构被破坏,或由于机器硬件故障而遭到破坏。对于数据库管理员而言,这不能仅寄希望于计算机操作系统的安全运行,而要建立一整套的数据库备份与恢复机制。当任何人为的或自然灾难一旦出现,导致数据库崩溃、物理介质损坏等故障时,管理员就可以及时恢复系统中重要的数据,尽可能地避免数据损失,使用数据库正常运行。人民邮电出版社2911.4数据库的备份与恢复技术丢失数据可以分为物理丢失和逻辑丢失。物理丢失是指操作系统的数据库组件丢失,例如,数据文件、控制文件、重做日志以及归档日志。引起物理数据丢失的原因可能是磁盘驱动毁损,也可能是有人意外删除了一个数据文件或者修改关键数据库文件所造成的配置变化。逻辑丢失就是例如表、索引和表记录等数据库组件的丢失。引起逻辑数据丢失的原因可能是有人意外删除了不该删除的表、应用出错或者在DELETE语句中使用不适当的WHERE子句。毫无疑问,Oracle能够实现物理数据备份与逻辑数据备份。人民邮电出版社3011.4数据库的备份与恢复技术RMAN概述RMAN是随Oracle服务器软件一同安装的Oracle工具软件,它专门用于对数据库进行备份、修复和恢复操作。如果使用RMAN作为数据库备份与恢复工具,那么所有的备份和恢复操作都可以在RMAN环境下使用RMAN命令完成,这样可以减少DBA在对数据库进行备份与恢复时产生的错误,提高备份与恢复的效率。人民邮电出版社3111.4数据库的备份与恢复技术RMAN组件RMAN是执行备份和恢复操作的客户应用程序。最简单的RMAN只包括两个组件:RMAN命令执行器与目标数据库。DBA就是在RMAN命令执行器中执行备份与恢复操作,然后由RMAN命令执行器对目标数据库进行相应的操作。人民邮电出版社32介质管理子系统磁带驱动器备用数据库恢复目录数据库目标数据库恢复目录RMAN命令执行器控制文件11.4数据库的备份与恢复技术RMAN通道RMAN具有一套配置参数,这类似于操作系统中的环境变量。这些默认配置将被自动应用于所有的RMAN会话,通过SHOWALL命令可以查看当前所有的默认配置。DBA可以根据自己的需求,使用CONFIGURE命令对RMAN进行配置。与此相反,如果要将某项配置设置为默认值,则可以在CONFIGURE命令中指定CLEAR关键字。人民邮电出版社33磁盘目标数据库磁盘介质服务器进程服务器进程通道ch1通道ch2恢复管理器11.4数据库的备份与恢复技术RMAN命令RMAN的操作命令非常简单,也无特定的技巧,只需要理解各个命令的含义,就可以灵活使用。在本节中,将介绍一些RMAN中的基本命令,以及如何利用这些基本命令来完成各种操作。人民邮电出版社3411.4数据库的备份与恢复技术使用RMAN备份数据库使用RMAN备份为数据库管理员提供了更灵活的备份选项。在使用RMAN进行备份时,DBA可以根据需要进行完全备份(FullBackup)与增量备份(IncrementalBackup)、联机备份和脱机备份。RMAN备份策略RMAN可以进行的两种类型的备份,即完全备份(FullBackup)和增量备份(IncrementalBackup)。在进行完全备份时,RMAN会将数据文件中除空白的数据块之外,所有的数据块都复制到备份集中。需要注意,在RMAN中可以对数据文件进行完全备份或者增量备份,但是对控制文件和日志文件只能进行完全备份。人民邮电出版社3511.4数据库的备份与恢复技术使用RMAN备份数据库文件和归档日志当数据库打开时,可以使用RMANBACKUP命令备份
本文标题:第11章数据库的安全保护
链接地址:https://www.777doc.com/doc-2153158 .html