Oracle是关系型数据库管理系统它功能强大性能卓越在当今大型数据库管理系统中占有重要地位在我们开发的一MIS系统中选用了Oracle数据库在正常情况下Oracle数据库会保证数据的安全稳定为用户提供正确的数据但由于计算机系统的故障(硬件故障软件故障网络故障和系统故障)影响数据库系统的操作影响数据库中数据的正确性甚至破坏数据库使数据库中全部或部分数据丢失整个系统都将处于瘫痪状态因此如何保证Oracle数据库的安全就成为整个MIS系统安全的重要组成部分
Oracle数据库的安全策略包括数据库的备份和恢复用户角色管理
一数据库备份所使用的结构
Oracle数据库使用几种结构来保护数据数据库后备日志回滚段和控制文件
.数据库后备是由构成Oracle数据库的物理文件的操作系统后备所组成当介质故障时进行数据库恢复利用后备文件恢复毁坏的数据文件或控制文件
.每一个Oracle数据库实例都提供日志记录数据库中所作的全部修改每一个运行的Oracle数据库实例相应地有一个在线日志它与Oracle后台进程LGWR一起工作立即记录该实例所作的全部修改归档(离线)日志是可选择的一个Oracle数据库实例一旦在线日志填满后可形成在线日志归档文件归档的在线日志文件被唯一标识并合并成归档日志
.回滚段用于存储正在进行的事务(为未提交的事务)所修改值的老值该信息在数据库恢复过程中用于撤消任何非提交的修改
.控制文件一般用于存储数据库的物理结构的状态控制文件中某些状态信息在实例恢复和介质恢复期间用于引导Oracle
二在线日志
一个Oracle数据库的每一实例有一个相关联的在线日志一个在线日志由多个在线日志文件组成在线日志文件(online redo log file)填入日志项(redo entry)日志项记录的数据用于重构对数据库所作的全部修改
三归档日志
Oracle要将填满的在线日志文件组归档时则要建立归档日志(archived redo log)其对数据库备份和恢复有下列用处
.数据库后备以及在线和归档日志文件在操作系统和磁盘故障中可保证全部提交的事物可被恢复
.在数据库打开和正常系统使用下如果归档日志是永久保存在线后备可以进行和使用
数据库可运行在两种不同方式下NOARCHIVELOG方式或ARCHIVELOG 方式数据库在NOARCHIVELOG方式下使用时不能进行在线日志的归档如果数据库在ARCHIVELOG方式下运行可实施在线日志的归档
四Oracle的备份特性
Oracle备份包括逻辑备份和物理备份
.逻辑备份
数据库的逻辑备份包含读一个数据库记录集和将记录集写入文件
()输出(Export)输出可以是整个数据库指定用户或指定表
()输入(Import)输入将输出建立的二进制转储文件读入并执行其命令
.物理备份
物理备份包含拷贝构成数据库的文件而不管其逻辑内容
Oracle支持两种不同类型的物理文件备份脱机备份(offline backup)和联机备份(online backup)
() 脱机备份
脱机备份用在当数据库已正常关闭数据库处于offline时要备份下列文件
所有数据文件
所有控制文件
所有联机日志
initora(可选的)
() 联机备份
联机备份可用来备份任何运作在ARCHIVELOG方式下的数据库在这种方式下联机日志被归档在数据库内部建立一个所有作业的完整记录
联机备份过程具备强有力的功能第一提供了完全的时间点(pointintime)恢复第二在文件系统备份时允许数据库保持打开状态
备份方式特性比较
方式 类型 恢复特性
Export 逻辑 可以将任何数据库对象恢复到输出时的状态
Offline Backups 物理 可把数据库恢复到关闭的状态若数据库运行在ARCHIVELOG方式就可恢复到任何时间点的状态
Online Backups 物理 可把数据库恢复到任何时间点
五Oracle数据库的角色管理
Oracle数据库系统在利用角色管理数据库安全性方面采取的基本措施有:
通过验证用户名称和口令防止非Oracle用户注册到Oracle数据库对数据库进行非法存取操作
授予用户一定的权限限制用户操纵数据库的权力
授予用户对数据库实体的存取执行权限阻止用户访问非授权数据
提供数据库实体存取审计机制使数据库管理员可以监视数据库中数据的存取情况和系统资源的使用情况
采用视图机制限制存取基表的行和列集合
MIS系统实例中Oracle数据库的安全策略
由于Oracle数据库备份有三种方式每种方式具有不同的恢复特性因此应集成数据库与文件系统备份集成逻辑备份和物理备份
一备份策略
.在操作系统级使用大容量磁盘阵列通过磁盘映像技术使每一个数据库文件自动分布于每个物理磁盘这样当某个磁盘出现物理损坏时操作系统会自动引发映像磁盘来取代失效的磁盘保证数据库的正常运行
由于我们使用的是双服务器因此在另一服务器上保留一个备份数据库备份数据库与正在使用的数据库具有相同的参数状态这样在数据库故障中只需作必须的最少恢复最大限度地缩短了恢复时间
在多个不同的物理磁盘上保持多个控制文件的备份控制文件在数据库恢复期间用于引导Oracle因此保持多个控制文件的备份可以确保在出现磁盘故障后能有可用的控制文件用于数据库恢复
使数据库运行在ARCHIVELOG(归档)方式下归档日志存放于另一映像的逻辑磁盘上
每晚进行一次联机备份操作备份所有数据文件所有归档日志文件一个控制文件
每周进行一次输出(Export)操作
二恢复策略
.实例失败
从实例失败中恢复是自动进行的实例失败一般是由服务器失败引起的当数据库实例失败后重新启动服务器启动数据库Oracle检查数据文件和联机日志文件并把所有文件同步到同一个时间点上
.磁盘失败
如果丢失的是控制文件只要关闭数据库从保留有控制文件的地方拷贝一份即可
如果丢失的是数据文件可用前一天晚上的联机备份进行恢复步骤如下
)从备份中把丢失的文件存在原来位置
)加载数据库
)恢复数据库
)打开数据库
.错误删除或修改对象
在这种情况下一般希望能追溯返回到错误发生前的那个时间点上这叫做时间点恢复完成恢复的步骤如下
)从当前数据库输出(Export)输入(Import)到备用数据库使备用数据库与当前数据库保持一致
)向前滚动备用数据库到错误发生前的那个时间点
)从备用数据库输出受错误影响的逻辑对象
)使用上一步产生的输出文件输入那些受影响的对象到当前数据库
三用户角色管理
.对所有客户端按工作性质分类分别授予不同的用户角色
.对不同的用户角色根据其使用的数据源分别授予不同的数据库对象存取权限
基于以上的安全策略可以防止非法用户访问数据库限制合法用户操纵数据库的权限可以使数据库在故障发生后不会丢失任何数据并能使数据库迅速恢复到故障发生前的那一时间点上最大限度的保证数据的安全和整个系统的连续运行