一:概述
Oracle是Oracle公司开发的一种面向网络计算机并支持对象-关系模型的数据库产品。它是一高级及结构化查询语言为基础的大型关系数据库。是目前最流行的客户/服务器体系结构的数据库之一。
Oracle之所以备受用户喜爱,是因为它具有以下突出的特点。
<1>支持大型数据库、多用户和高性能的事务处理。Oracle支持的最大数据库,可达几百千兆,可充分利用硬件设备;支持大量用户同时对数据库执行各种数据操作,并保证数据的一致性;系统维护具有很高的性能,Oracle每天可以连续24小时工作,正常的系统操作过程中不会中断数据库的应用;可在数据库或子数据库上控制数据的可用性。
<2>Oracle遵循数据库存取语言、操作系统、用户接口和网络通信协议的工业标准 ,所以它是一个开放系统,保护了用户的投资。美国标准化和技术研究所(NIST)对Oracle Sercer进行过检验,完全与ANSISO SQL89标准相兼容。
<3>实施安全型控制和完整型控制。Oracle为限制系统对各监控数据库的存取提供了可靠的安全性,并为可接受的数据指定标准,保证数据的完整性。
<4>支持分布式数据库和分布式处理。Oracle为了充分利用计算机系统和网络,允许将处理分为数据库服务器处理和客户应用程序处理,所有共享的数据管理由数据库管理系统的计算机处理,而运行数据库应用的工作集中于解释和显示数据。通过网络连接环境,Oracle将存放在多台计算机上的数据组合成一个逻辑数据库,可被全部网络用户存取。分布式系统像集中式数据库一样就有透明性和数据一致性。
二:组合安全性
在操作系统下建立用户组是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只有数据库管理员组DBA可执行。在UNIX环境下组设置的配置文件是/etc/group,UNIX的有关手册对于如何配置这个文件进行了详细的介绍。
方法有以下几种:
在安装Oracle Server前,创建数据库管理员组(DBA)并且分配Root和Oracle软件拥有者的用户ID给这个组。在安装过程中系统权限命令被自动分配给DBA组。
允许一部分UNIX用户有限制地访问Oracle服务器系统,确保给OPracle服务器实用例程 Oracle组ID,公用的可执行程序(例如SQL_Plus、SQL_Forms等)应该可被这个组执行。然后设定这个实例用程的权限,允许同组的用户执行,而其他用户不能改变那些不会影响数据库安全性的程序的权限。
为了保护Oracle服务器不被非法用户使用,可以采取如下几条措施:
确保ORACLE_HOME/bin目录下所有程序的拥有权归Oracle软件拥有者所有。
给所有用户实用例程(sqipluis、sqiforms、exp、imp等)特定权限,使服务器上所有用户都可以访问Oracle服务器。
给所有的DBA实用例程(比如SQL_DBA)特定权限。当Oracle服务器和UNIX组访问本地的服务器时,用户可以通过在操作系统下把Oracle服务器的角色映射到UNIX组的方式来使用UNIX管理服务器的安全性。这种方法适用于本地访问。
Oracle软件的拥有者应该设置数据库文件的使用权限,使得文件的拥有者可读可写,同组的和其他组的用户没有写的权限。Oracle软件的拥有者应该拥有包含数据库文件的目录,为了增加安全性,建议收回同族和其他组用户对这些文件的可读权限,
三:建立安全策略
系统安全策略主要考虑以下三点:
<1>管理数据库用户是访问Oracle数据信息途径,因此应该很好地维护管理数据用户的安全性。按照数据库系统的大小和管理数据库用户所需的工作量,数据库安全性管理者可能只是拥有create、alter、drop数据库用户的一个特殊用户,或者是拥有这些权限的一组用户。应当注意的是,只有那些值得信任的人才有管理数据库用户的权限。
<2>身份确认数据库用户可以通过操作系统、网络服务和数据库进行身份确认。通过主机操作系统进行用户身份认证有三个优点:
《1》用户能更快、更方便地连入数据库。
《2》通过操作系统对用户身份确认进行集中控制,如果操作系统与数据库用户信息一致,那么Oracle无须存储和管理用户名名和密码。
《3》用户进入数据库和操作系统审计信息一致。
<3>为确保操作系统安全性,数据库管理员必须有create和delete文件的操作系统权限,而一般数据库用户不应该有create或delete与数据库文件相关的操作系统权限。如果操作系统能为数据库用户分配角色,那么安全型管理者必须有修改操作系统账户安全性区域的操作系统权限。
数据安全策略的考虑应基于数据的重要性。如果数据不是很重要,那么数据的安全性策略可以稍微放松一些,如果数据很重要,那么应该有一个谨慎的安全策略,用它维护对数据对象访问的有效控制。用户安全策略主要包括以下几种:
一般用户的安全性:
《1》密码的安全性。如果用户通过数据库进行用户身份的确认,那么建议使用密码加密的方式与数据库进行连接。
《2》权限管理。对于那些用户很多,应用程序和数据对象很丰富的数据库,应充分利用角色机制所带来的方便性对权限进行有效的管理。对于复杂的系统环境,角色能大大地简化权限管理/
终端用户的安全性:
用户必须针对终端用户制定安全性策略,例如:对于一个有很多用户大规模数据库,安全性管理者可以决定用户组分类,为这些用户创建用户角色,把所需的权限和应用程序绝色授予每一个用户角色,以及为用户分配相应的用户角色。当处理特殊的应用要求时,安全性管理者也必须明确地把一些特定的权限要求授予给用户,用户可以使用角色对终端用户进行权限管理。
四:数据库管理者安全策略
《1》要保护sys和system用户的连接,但数据库创建好后,应当立即更改有管理权限地sys和system用户的密码,防止非法用户访问数据库,当作为sys和system用户连入数据库后,用户强大的权限用各种方式改动数据库。
《2》保护管理者与数据库的连接,应该只有数据库管理者能用管理权限连入数据库。
《3》使用角色对管理者权限进行管理。
五:应用开发者的安全策略
《1》应用程序开发者和他们的权限数据库应用程序开发者是唯一一类需要特殊权限完成自己工作的数据库用户。开发者需要一些系统权限。然而,为了限制开发者对数据库的操作,只应该把一些特定的系统权限授予开发者。
《2》考虑到应用程序开发者环境,程序开发者不应该与终端用户竞争数据库资源,同时程序开发者不能损害数据库与其他应用产品。
《3》应用程序开发者有free developmnet与controlled development两种权限。在前一种情况下,应用程序开发者允许创建新的模式对象,它允许应用程序开发者开发独立于其他对象的应用程序。而在后一种情况下,应用程序开发者不允许创建新的模式对象,而是由数据库管理者创建,它保证了数据库管理者能够完全控制数据空间的使用和访问数据库信息的途径。但在实践中,有时应用程序开发者也需要两种权限的混合。
《4》数据库安全性管理者能创建角色来管理典型的应用程序开发者的权限要求。作为数据库安全性管理者,用户应该特别地为每个应用程序开发者设置一些限制,在有许多数据库应用程序的数据库中,用户可能需要一位应用程序管理者,应用程序管理者应负责为每一个应用程序创建角色以及管理每一个应用程序的角色‘创建和管理数据库应用程序使用的数据对象以及维护和更新应用程序代码、Oracle的存储过程和程序包。