如何消除Oracle数据库的安全隐患

2/9/2008来源:Oracle教程人气:4448


  Oracle数据库以其优异的性能在各个领域得到广泛应用。但由于计算机软、硬件故障、口令泄密、黑客攻击等等因素,都可导致数据库系统不能正常运转,造成大量数据信息丢失,数据被恶意篡改,甚至使数据库系统崩溃。忽视Oracle数据库的安全问题,必将给用户带来巨大的损失。 如何保证数据库的安全运行是数据库治理员日常工作中的首要问题。下面提出几条防范措施供大家参考: 
一、用户角色的治理与口令保密
  这是保护数据库系统安全的重要手段之一。它通过建立不同的用户组和用户口令验证,可以有效地防止非法的Oracle用户进入数据库系统,造成不必要的麻烦和损坏;另外在Oracle数据库中,可以通过授权来对Oracle用户的操作进行限制,即答应一些用户可以对Oracle服务器进行访问,也就是说对整个数据库具有读写的权利,而大多数用户只能在同组内进行读写或对整个数据库只具有读的权利。在此,非凡强调对SYS和SYSTEM两个非凡账户的保密治理。Oracle的数据库治理员都知道,数据库系统典型安装后,一般sys和system以及internal这三个用户具有默认的口令,数据库安装成功后,系统治理员作的第一件工作就是修改这些用户的口令,保证数据库的安全性。 
  为了加强数据库在网络中的安全性,对于远程用户,应使用加密方式通过密码来访问数据库,加强网络上的DBA权限控制,如拒绝远程的DBA访问等。

二、数据保护 
  数据库的数据保护主要是数据库的备份,当计算机的软硬件发生故障时,利用备份进行数据库恢复,以恢复破坏的数据库文件或控制文件或其他文件。 
  另一种数据保护就是日志,Oracle数据库实例都提供日志,用以记录数据库中所进行的各种操作,包括修改、调整参数等,在数据库内部建立一个所有作业的完整记录。 
再一个就是控制文件的备份,它一般用于存储数据库物理结构的状态,控制文件中的某些状态信息在实例恢复和介质恢复期间用于引导Oracle数据库。 
 (一)ORACLE数据库的备份
  日常工作中,数据库的备份是数据库治理员必须不断要进行的一项工作,Oracle 7数据库的备份主要有以下几种方式: 
  1. 逻辑备份 
  逻辑备份就是将某个数据库的记录读出并将其写入到一个文件中,这是经常使用的一种备份方式。

  ·eXPort(导出):此命令可以将某个数据文件、某个用户的数据文件或整个数据库进行备份。

  ·import(导入):此命令将export建立的转储文件读入数据库系统中,也可按某个数据文件、用户或整个数据库进行。 
  2. 物理备份 
  物理备份也是数据库治理员经常使用的一种备份方式。它可以对Oracle数据库的所有内容进行拷贝,方式可以是多种,有脱机备份和联机备份,它们各有所长,在实际中应根据具体情况和所处状态进行选择。 
  ·脱机备份 
  其操作是在Oracle数据库正常关闭后,对Oracle数据库进行备份,备份的内容包括:所有用户的数据库文件和表;所有控制文件;所有的日志文件;数据库初始化文件等。可采取不同的备份方式,如:利用磁带转储命令(tar)将所有文件转储到磁带上,或将所有文件原样复制(copy,rcp)到另一个备份磁盘中或另一个主机的磁盘中。 
  ·联机备份 
  这种备份方式也是切实有效的,它可以将联机日志转储归挡,在 Oracle数据库内部建立一个所有进程和作业的具体准确的完全记录。

  物理备份的另一个好处是可将Oracle数据库治理系统完整转储, 一旦发生故障,可以方便及时地恢复,以减少数据库治理员重新安装Oracle带来的麻烦。 
(二)数据库系统的恢复 
  有了上述几种备份方法,即使计算机发生故障,如介质损坏、软件系统异常等情况时,也不必惊慌失措,可以通过备份进行不同程度的恢复,使Oracle数据库系统尽快恢复到正常状态。
  1. 数据文件损坏 
  这种情况可以用最近所做的数据库文件备份进行恢复,即将备份中的对应文件恢复到原来位置,重新加载数据库。
 
  2. 控制文件损坏 
  若数据库系统中的控制文件损坏,则数据库系统将不能正常运行,那么,只须将数据库系统关闭,然后从备份中将相应的控制文件恢复到原位置,重新启动数据库系统。 
  3. 整个文件系统损坏 
  在大型的操作系统中,如UNIX,由于磁盘或磁盘阵列的介质不可靠或损坏是经常发生的,这将导致整个Oracle数据库系统崩溃,这种情形只能: 
  ·将磁盘或磁盘阵列重新初始化,去掉失效或不可靠的坏块。

  ·重新创建文件系统。 
  ·利用备份将数据库系统完整地恢复。 
  ·启动数据库系统。 

三、建立Oracle的审计机制
  Oracle的审计机制是用来监视用户对ORACLE数据库所做的各种操作。在缺省情况下,系统的审计功能是关闭的。激活的办法是,在INIT.ORA参数文件中,将参数AUDIT_TRAIL设置为正整数。
审计功能激活后,任何拥有表或视图的用户就可以进行如下审计操作:
  ·使用SQL语句来挑选审计选择项;
  ·审计对该用户所拥有的表或视图的成功或不成功的存取企图;
  ·有选择的审计各种类型的SQL操作(SELECT、UPDATE、INSERT、DELETE);
  ·控制审计的程度(是以session还是access为单位)。
  另外,对于DBA用户还可以以下审计功能:
  ·对成功的LOGON、LOGOFF、GRANT、REVOKE进行审计;
  ·答应或禁止向审计追踪表寄数据;
  ·为某些数据库表设定缺省选择项。