Oracle 10g数据库安全策略分析与设计.doc
文本预览下载声明
Oracle 10g数据库安全策略分析与设计
摘要:Oracle数据库占据了目前世界主流商用数据库系统市场80%以上的份额,该文详细分析了Oracle 10g数据库的安全体系结构,提出了一种较为完备的Oracle数据库应用系统的安全策略。
关键词:Oracle数据库;安全性;策略
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2010)21-6058-02
随着社会信息化进程的加速,数据库系统得到了广泛应用,它们担负着存储和管理信息的任务,集中存放了大量数据,因此数据库的安全性受到人们的广泛关注。
所谓数据库的安全性是指数据库的任何部分都不允许受到恶意侵害或未经授权的存取或修改。其主要内涵包括三个方面:1) 保密性,即不允许未授权的用户存取信息。2) 完整性,即只允许被授权用户修改数据。3) 可用性,即不应拒绝已授权用户对数据的存取访问。
数据库系统受到的威胁主要有:对数据库的不正确访问,引起数据库数据的错误;为了某种目的,故意破坏数据库,使其不能恢复;非法访问不该访问的数据库信息,且又不留痕迹;用户通过网络进行数据库访问时,有可能受到各种技术的攻击;未经授权非法修改数据库数据,使其失去真实性;硬件毁坏;自然灾害;磁干扰等。为了保护数据库的安全,目前常用的数据库安全技术主要有用户认证、访问控制、信息流控制、推理控制、数据库加密等,其中应用最广也最为有效的是访问控制技术。
1 Oracle 10g数据库的安全体系结构
Oracle数据库的安全级别为C2级,其安全原理基于最小特权,此原则认为用户只应该具有完成其任务所必需的特权,而不应该具有更多的特权。Oracle 10g数据库的安全性可以被分为3个层次:
1)系统安全性:指在系统级上控制访问和使用数据库的机制。包括有效的用户名及其口令、用户是否被授权连接到数据库、用户是否有足够的磁盘空间来存放用户模式对象、用户的资源限制、是否启动了数据库的审计功能、用户可以进行那些系统操作等。
2)数据库安全性:指在实体级上控制访问和使用数据库的机制。包括用户可以存取的方案对象及在该对象上可以进行那些操作等,即用户必须具备存取该实体的权限。
3)网络安全性:Oracle 10g数据库主要是面向网络提供服务的。其网络传输的安全至关重要,包括登陆助手、目录管理、标签安全性等集成工具。Oracle通过分发Wallet、数字证书、SSL安全套接字和数字密钥的办法来确保网络数据传输的安全性。
在Oracle的安全体系结构中,连接到数据库的用户有普通用户和数据库管理员用户两类。普通用户主要是通过各种应用程序和查询工具连接,使用数据库账户和口令来验证,必要时可实施Oracle高级数据加密技术;数据库管理员用户用sys、system或具有dba权限的账户连接,登录系统时需采用口令文件验证或操作系统验证。
作为连接到数据库的账户,必须首先是数据库中的用户,该用户只有在数据库中拥有必要的角色和权限,才能被数据库认可并可在数据库中进行相应的活动。在每个模式下,存储的核心是数据库的表。对于常规表,Oracle支持三个级别的安全性:表级、行级和列级。表级的安全性由表的拥有者通过表级授权来控制其他用户;行级的安全性可通过视图来实现;列级的安全性可直接定义在表上,也可以通过视图定义表的垂直投影子集来实现。在很多情况下,一个表中存储了分别属于多个部门或个人的不同安全级别的数据,此时单纯使用视图很难从根本上解决此类安全问题,同时,用户也可使用特殊工具绕过视图直接去访问表。对此,Oracle采用了虚拟私有数据库VPD和标签安全OLS两项技术来实现有关行级数据的保护。这样一来,不论用户采用何种工具访问数据库,均受到VPD和OLS的制约,从而达到了按行访问的目的。
当用户连接数据库时还需要通过系统概要文件对用户所使用的资源进行限制,如访问时间、登陆次数、占用CPU时间等。
2 Oracle 10g数据库应用系统的安全策略设计
数据库安全十分重要,但安全管理需要成本,过分的安全还会影响效率,因此,很多时候需要数据库管理员在性能、时间和安全之间进行折中,从而制定出一个适合特定应用的、灵活的安全策略。在设计Oracle10g数据库应用系统的安全策略时应从以下几个方面着手:
2.1 建立Oracle 10g数据库的安全机制及实施计划
在设计数据库过程中,首先规划表空间和数据库的模式,包括表和子程序对象、用户的类型、这些用户需要使用哪些数据以及需要什么样的权限。然后,通过由表和用户构成的对象/用户权限CRUD关联矩阵来明确与对象权限以及表与表空间的对应关系。
根据上述规划,可以在数据库中按照下列顺序创建模式及对
显示全部