本文作者:刘新文 张玉平 单位:湖南工学院数理教学部讲师
1.前言
由于数据库中放置了大量的企业或个人数据,其中许多重要数据是涉及隐私的或者机密的,如国家机密、科研数据、银行储蓄等数据,对于拥有者而言,往往只容许一部分人访问这些数据,因此,如何确保和加强数据库的安全性已成为目前必须要解决的问题。目前美国生产的大型数据库Oracle是最为流行的关系数据库管理系统,它以分布式数据库为核心,在数据安全性与数据完整性控制方面具有优越性能,可以跨系统跨平台进行数据相互操作,因此,越来越多的用户使用Oracle,应用范围越来越广阔,如管理信息系统、Internet、电子商务网站等领域。Gartner2011年RDBMS市场份额报告,数据显示2011年Oracle市场份额增长到48.8%,处于第一位,销售额约为118亿美金,2010年的销售额约为100亿美金,增长率为18%。面对这种现实情况,本文根据自己长时间使用Oracle的经验和体会,下面具体介绍Oracle数据库的安全威胁和Oracle数据库安全性控制的措施。
2.Oracle数据库的安全威胁Oracle数据库的安全性受到多方面的威胁,包括对Oracle数据库中信息的窃取、篡改和破坏、黑客的攻击和病毒的侵害等。对Oracle数据库常用的攻击手段有如下几种:
(1)SQL注入攻击目前越来越多的程序员使用B/S模式编写应用程序,但是由于程序员的水平参差不齐,部分程序员在编写代码时,没有对用户输入数据的合法性进行判断,使得应用程序存在一定的安全隐患,这样用户通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,获得某些用户想得知的数据,这就是SQL注入。SQL注入攻击是黑客对数据库进行攻击的常用手段之一。
(2)默认密码Oracle具有系统默认用户sys、system和internal,这些用户都有预设的默认密码。如果数据库管理员没有修改这些用户的默认密码,非法用户就可以通过输入“合法”的用户名和密码进入系统进行操作,从而达到获取合法数据的目的。
(3)尝试登录对Oracle数据库来说,尝试登录是用某种自动执行的进程,通过尝试所有的字母数字组合来破解用户名和密码。
(4)权限提升对Oracle数据库来说,权限提升是指低权限用户利用巧取、偷窃或非法的方式获取更高的权限,甚至是数据库管理员的权限,如:有些用户利用ORACLE系统账户默认口令提升权限。
(5)操作系统指令和安全非法用户通过诱使Oracle数据库运行操作系统水平的指令,这些指令能够删除和破坏文件、改写日志、创建用户,以及其他一些能通过命令行输入指令达成的操作。实现这样目的方法有很多,最容易的一种就是通过Java或PL/SQL等一些程序语言,利用创建外部存储过程的能力,使之执行一个具备系统调用功能的存储程序。这个系统调用指令能够以首次安装时使用的Oracle用户权限执行。
3.Oracle数据库安全性控制的措施
Oracle数据库虽然面临的安全威胁和存在的安全隐患很多,但只要我们防范得当,还是可以在很大程度上保证数据库的安全。因此我们采取以下安全措施来保证数据库的安全。
(1)及时更改密码为了防止非法用户访问数据库,在数据库创建好之后立即更改系统默认用户sys、system和internal的密码。在Oracle中,所有用户的权限信息、审计记录、审计内容都存放在sys用户下的数据字典中。另外,Oracle还会自动创建一个DBSNMP用户,它负责运行Oracle系统的智能代理,其默认密码即为“DB-SNMP”,如果忘记了修改该密码,则任何用户都可以使用DBSNMP用户名来存取数据库系统。
(2)Oracle数据库的备份和恢复机制为了更好地保证数据库中的数据安全性和稳定性,防止因为计算机出现故障而造成数据的丢失,对数据库中的数据进行定期备份,是提高数据库数据安全的一种重要举措。当系统出现崩溃、用户误操作或其它的问题时,可以对数据库进行相应的恢复,防止数据的丢失而造成不必要的损失。由此可见,保障Oracle数据库数据安全的主要措施是数据备份与恢复机制。Oracle数据库具有2种不同恢复特性的备份方式:逻辑备份和物理备份。逻辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。利用Oracle的Import可以完成逻辑备份,而利用Oracle的Export可以实现通过逻辑备份对数据库的恢复工作。物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下,且需要极大的外部存储设备,例如磁带库,具体包括冷备份和热备份。冷备份和热备份是物理备份,它涉及到组成数据库的文件,但不考虑逻辑内容。如果是应用备份工具来进行备份操作,那么主要采用EXP/IMP备份、RMAN方法、OS备份等方法进行。但对于企业中的生产库,一般推荐使用ARCHIVELOG模式下的OS备份或RMAN方法,要求比较高的可能还必须用到RAC等并行处理的架构。
(3)Oracle数据库的审计机制保障Oracle数据库数据安全的一种有效的安全措施是审计机制,这种措施可用来监视用户对数据库所做的各种操作,通常用于调查非法活动以及监控、收集特定数据库的活动信息。在缺省情况下,系统为了节省资源、减少I/O操作,数据库的审计功能是关闭的。激活的方法是,在INIT.ORA参数文件中,将参数AUDIT_TRAIL设置为TRUE。审计功能激活后,任何拥有表或视图的用户就可以进行如下审计操作:使用SQL语句来挑选审计选择项;审计对该用户所拥有的表或视图的成功或不成功的存取企图;有选择的审计各种类型的SQL操作;控制审计的程度等。
(4)数据库加密数据库加密是Oracle数据库系统的最后一道防线。Oracle数据库系统如果遭受入侵,入侵者可以直接窃取数据库文件,从而非法伪造、篡改数据库文件的内容。因此,Oracle通过访问控制机制和加密技术对数据库中存储数据和敏感数据加密。另外也可以使用一些加密算法,如DES、RSA、AES等加密算法来实现加密,从而达到保护数据库文件的目的。
特别注意:本站部分信息由网络收集整理.如有错误,请联系我们修改,谢谢!