三方面提高Oracle数据库的安全性

发表于:2012-4-09 10:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  要提高ORACLE数据库的安全性, 必须从数据库系统自身安全,数据库用户安全以及数据库数据安全多方面入手,杜绝可能出现的数据泄露情况。

  随着计算机技术的提高和网络应川的发展,数据库应用越来越多的进入各行各业各领域,担负起处理数据的任务。在众多的数据库系统中,ORACLE数据库以其优异的性能,高效的处理速度、极高的安全级别等优点,被大量大型公司所采用。如我国银行、保险、通讯等企业,大多都是采用ORACLE数据库系统处理的。虽然ORACLE数据库系统有着极高的安全级别,但依然有被破坏的可能性,比如计算机软硬件故障,非法入侵,感染病毒等,都有可能致数据库系统不能正常运行,造成大量数据信息丢失,甚至数据库系统崩溃等情况。数据库中重要数据、敏感数据被泄露、篡改或被破坏等安全性问题,关系到企业的兴衰、关系到国家安全,如何提高数据库的安全,防止数据库内数据被窃取、篡改或者删除,已经成为众多企业在运用数据库系统的时候所关注的问题。下面我们从系统安全、用户安全和数据安全三个方面,讨论如何提高ORACLE数据库的安全性。

  1、数据库系统的自身安全策略

  数据库系统终究是存储在计算机上面的,要提高ORACLE数据库的安全性,首先要从ORACLE数据库系统自身做起,从保护ORACLE数据库服务器做起。对于ORACLE数据库所处的服务器来说,首要的是必须保证$Oracle HOME/bin目录下的所有内容的所有权,都只属于Oracle用户,保证除了管理员有建立和删除文件的权限外,一般用户不能拥有建立和删除与数据库有关文件的权限。对于一般用户来说,只能给予服务器上的sqiplus、qiforms、exp、imp等711权限, 使这些用户可以访问Oracle~务器。对于本地访问, 可以利用操作系统把ORACLE~ 务器角色映射到Unix下的方式使用Unix管理服务器的安全性。服务器管理人员应该把数据库文件($ORACLE HOME/dbs/*.dbf)的使用权限设置为0600,只允许管理人员拥有读写权限,而别的用户没有写的权限。为了增加安全性,最好是把读取权限也一并收回。

  2、ORACLE数据库的用户安全

  提高ORACLE数据库的用户安全,是防止ORACLE数据库被非法侵入的重要手段。而在数据库的用户安全管理方面,主要是通过对数据库用户的账户进行管理来实现的。

  2.1 加强服务器帐户的管理

  在我们安装ORACLE数据库的时候,系统会自动建立几个默认帐户,在ORACLE安装完的时候,这些默认帐户当中有的会被系统自动设为过期,同时打开一些有用的账户,如sys,system,sysman这样的账户,有时候可能还会建立scott帐户。从ORACLE数据库的安全性上着眼,我们最好能把一些不常用的帐户锁定,只保留sys,system,SYSMAN~个用户名即可。有的管理人员在对数据库进行维护的时候,会建立自己的管理员帐户,而不是采用系统提供的管理员帐户。对于这些帐户应当将其锁定或者注销,否则对于数据库系统的安全将是潜在威胁。

  2.2 注意用户口令的保密

  不管是数据库还是别的什么运用口令获得权限的地方,加强口令的保密都是提高安全性的一个必然项目。对于数据库来说,除了要注意基本口令管理准则,如口令的长度、口令的复杂性、口令的更改周期等,还要注意用户口令的加密。ORACLE数据库系统是依赖于密码管理的,在ORACLE数据库中采用了一项独创的功能,就是通过概要文件来保障数据库口令的安全性。我们需要运用CREATE语句, 为用户创建一个概要文件,以此来指定用户在一定时间间隔内不能使用相同的密码,用REUSE TIME来指定多久后可以使用相同密码,用REUSE MAX来指定在使用到重复密码之前用户必须做出改变的次数。在口令使用期限上,虽然使用一次就修改一次密码并不现实,但我们可以尽量缩小密码使用期限,同样用CREATE语句为用户创建概要文件,用LIFE TIMEf~定口令最长使用时间。在口令的复杂性上面,一定要杜绝用户使用纯数字口令、衙口令的情况,在ORACLE数据库中提供了多种密码复杂性的检查工具,可舰定密码的最小长度,可规定密码必须包含的符号等,从而提高密码破解难度。不过因为密码太过复杂有的用户习惯用纸记下,这种情况更要注意密码的泄露。只有注意了密码的安全管理,才能把ORACLE数据库的安全性提高到一个新的层次。

  2.3 加强ORACLE数据库对用户动作的审计

  对于越权使用、口令泄露等情况,还可参考运用用户动作审计机制,来提高ORACLE数据库的安全性。用户动作审计机制,是对用户的可疑活动,如非授权用户的删除活动、写入活动、修改活动等动作。在ORACLE数据库系统中,有三种审计类型。可以通过语句审计,对某种类型的SQL语句进行审计,可以进行特权审计,对执行相应动作的系统特权进行使用审计, 可以对特殊模式对象上的指定语句进行审计。从而记录用户操作动作、操作日期和时间、登录IP等,这些记录存储于SYS模式中的AUD$表之中。

  2.4 注意终端用户权限的分配

  对于ORACLE数据库来说,终端用户的权限控制,也是加强其安全性的重要手段。在运用时,我们可以通过应用软件来控制,也可以通过数据库的用户权限管理来实现。一般情况下,我们不应给用户直接赋予权限,而应当利用数据库自身的权限管理器来进行管理,将终端用户按权限需要进行分组,仅给每个用户赋予必要的权限,通过用户与组来管理数据库的访问权限,对于一些特权用户,则可以直接把权限赋予用户。通过组来管理用户众多的数据库,可以使用户权限管理更简单,避免出现因管理混乱而产生权限泄露的情况。

  3、数据安全

  在ORACLE数据库的运用中,由于计算机系统故障,病毒侵害,人为破坏等都会影响数据库中数据的正确性,甚至产生数据全部或部分丢失的情况。除了运用备份与恢复机制来防止数据遭到破坏造成安全性问题外,我们还需要注意数据库数据的完整性,运用DBA或者应用开发者预定定义的规则,防止错误信息的输入和输出,避免产生不符合规则的数据。通常包括空与非空规则、唯一列值规则、引用完整性规则、复杂性完整性检查规则等。所有这些规则可以用完整性约束和数据库触发器来定义。由于ORACLE是大型关系型数据库,其用户众多,还需要采用数据封锁来解决并发操作所造成的数据一致性和完整性的问题。防止使用同一资源的用户之间形成破坏性干扰, 从而不正确的修改数据或数据结构。在数据库数据的备份与恢复机制上,应当充分运用恢复子系统的机能,做好数据库物理文件的后备备份工作,避免介质故障造成的数据损失。

  4、结束语

  总之,要提高ORACLE数据库的安全性, 必须从数据库系统自身安全,数据库用户安全以及数据库数据安全多方面入手,杜绝可能出现的数据泄露情况,尽最大可能的保证数据库数据被破坏后的完整性,从而提高数据库的安全性。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号