开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Oracle数据库的网络安全访问机制范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:组和安全性在操作系统下建立用户组是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只有数据库管理员组DBA可执行。本文主要探讨基于oracle数据库的网络安全访问机制。
关键词:Oracle数据库;网络安全;访问机制
中图分类号:TP311.138 文献标识码:A 文章编号:1007-9599 (2013) 01-0155-02
随着计算机的普及以及网络的发展,数据库已经不再仅仅是那些程序员所专有的话题。Oracle数据库更是凭借其性能卓越、操作方便灵活的特点,在数据库的市场中已经占据了一席之地。以下将基于Oracle数据库的网络安全访问机制。
1 Oracle数据库的一些基本常识
1.1 Oracle所包含的组件
Oracle数据库是指整个Oracle RDBMS环境,它包括以下组件:
(1)Oracle数据库进程和缓冲(实例)。
(2)SYSTEM表空间包含一个集中系统类目,它可以由一个或多个数据文件构成。
(3)其他由数据库管理员(DBA)(可选)定义的表空间,每个都由一个或多个数据文件构成。
(4)两个以上的联机恢复日志。
(5)归档恢复日志(可选)。
(6)其他文件(控制文件、Init.ora、Config.ora等)。每个Oracle数据库都在一个中央系统类目和数据字典上运行,它位于SYSTEM表空间[1]。
1.2 关于“日志”
Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。下面将大体上了解一下作为主要结构之一的“日志”。每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)曰志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。在线日志:一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。
2 Oracle数据库网络安全访问机制
2.1 保护默认的用户账号
在新的Oracle数据库中,初始时,一般都安装有20多个的默认模式(实际的数目可能略有不同,因为在数据库的创建过程中需要有选择地安装这些模式)。当利用Google对“默认Oracle用户(Default Oracle Users)”进行搜索时可以发现,其中的用户名、密码以及这些账号的权限都是公开的。这些账号经常用来存储元数据(metadata)以及用于专门的数据库选项的过程,例如文本选项(Text Option)以及空间选项(Spatial Option)。因此,其中的很多账号都拥有相当重要的权限,它们的密码也可能是众所周知的,有可能就列举在Oracle的产品文档中,也有可能就在Internet上。上述因素加起来,则对数据库形成了危险对数据库的访问和登录进行保护。下面将给出控制访问数据库账号的若干方法,这些方法包括从限制对账号的登录到完全删除账号等各种不同的方法。而把其中的若干方法组合在一起使用则是更好的方法,因为这体现了深度防御的思想。
(1)改变默认密码并设定更健壮的密码。在数据库创建过程中,DBCA提供了产生初始密码的捷径,它允许所有的账号都使用相同的密码。不用选择这个选项,给每一个模式设定强壮而又各不相同的密码。
(2)创建不可能的密码。在数据库安装后,管理数据库的账号和权限,并阻止任何希望能直接登录数据库的用户,因为密码是不可能被猜到的。
(3)创建数据库的登录触发机制。检查不能登录数据库的用户,如果用户尝试登录则登录触发器触发失效。失效的登录触发器将能阻止用户登录数据库。这种技术对于拥有某些授权的用户不会起作用,例如SYS(SYSDBA)以及拥有“数据库触发器管理员(ADMINISTRAT OR DATABASE TRIGGER)”系统权限的用户。然而,如果仅仅只允许上述授权用户可以登录数据库也会带来某些不足,不过这是能拒绝其他所有用户登录数据库的极好的方法。
(4)取消CREATESESSION和(或)CONNECT角色。删除登录数据库的权限是用来阻止用户登录数据库最显而易见的方法。请注意,这个方法在阻止黑客登录数据库的同时也会阻止合法用户和应用程序的登录,这与用户知道还是不知道密码没有关系,因为登录权限已经被删除了。
(5)锁定账号。使用这个方法的效果和删除登录数据库的权限类似,但权限实际上却没有被删除。这个方法从Oracle9i开始引入。
2.2 Oracle密码
Oracle在数据字典中存放用户密码。对于得到数据库
认证的用户,其中所存放的实际上不是密码明文本身,而是密码校验(password verifiers)。密码校验是密码明文的哈希(hash)表示。其中存放的密码校验值以十六进制表示。数据库认证的过程则是计算用户为了通过认证所提供的密码明文的密码校验,并把计算结果与数据字典中存放的某一密码校验比较,如果相符合,则表示用户提供了相同的密码,从而可以通过认证。
(1)使用Oracle本地存储的密码验证密码。应用用户的认证是确保数据库应用安全非常重要的一步。进行应用用户认证可以有3种方法:首先,可以创建、维护,以及(或)同步所存储的密码以及认证信息。其次,假设应用的用户同时也是数据库的用户,那么应用可以把应用用户作为独立的用户与数据库进行连接,并进行认证。这是一个不可取的方法,因为仅仅为了认证而建立或撤销与数据库的连接开销较大——从认证需要的时间和性能的观点看。最后一个方法仍需要假设应用的用户同时也是数据库的用户,从而可以利用数据库存储的内部密码。
(2)检测弱密码或默认密码。密码在安全链中一般都属于脆弱的环节。一个没有经过很好选择的密码、或者说是众所周知而又一直没有变更过的密码对于数据库来说,是极其巨大的安全隐患之一。为了消除此隐患,可以把数据库中实际正被使用的密码校验与一系列已被大家所知的用户名和密码校验进行比较,其中已知的用户名和密码校验产生在帮助程序。
(3)管理并确保安全密码对于Oracle数据库来说,密码是最流行的认证方式。通过使用复杂的密码规则,Oracle提供了强调用户选择安全且强壮的密码功能;而通过利用密码规范,Oracle同时也提供了管理密码的良好方法[3]。
(4)限制数据库资源除了密码规范之外,Oracle还支持资源规范,从而限制使用昂贵的数据库资源。一个良好的习惯是针对数据库的每一个应用或每一类用户分别制定规范,当然,这也包括针对各个级别的管理员制定规范。
(5)确保网络的安全对于绝大部分数据库,在用户能访问数据库之前就已产生了安全问题。把用户、应用和数据库连接在一起的网络是安全链中非常重要的一环。
参考文献:
[1]刘天华,孙阳,朱宏峰等编著.网络安全[M].科学出版社,2010.04.
[2]祝远春.Oracle数据库网络安全研究[J].科技资讯,2008.10.
[3]本书编委会编著.计算机网络安全[J].中国计划出版社,2007.8.