提高Oracle数据库应用系统安全的举例与分析?
赵晋 王维民?
(合肥市电信局计算中心)??
摘要 本文介绍了作者为了提高Oracle数据库安全所进行 的一些有益尝试。?
关键词 Oracle数据库 安全??
1. Oracle数据库安全的几个基本概念?
1.1帐户安全(Account Security)?
要在数据库中访问数据,就必须访问该数据库的一个帐户。每个帐户必须指定一个口令。口 令是在帐户建立的时候设置的,可由DBA或用户进行修改。?
1.2系统级权限(System-level Privilege)?
系统级权限可以建立从系统级权限全集到扩展的基本系统级的各类角色。比如,Connect,Re source和DBA就是分别提供给用户,开发者及DBA的标准角色。?
1.3对象安全性(Object Security)?
用户可以通过grant命令将自己创建的一些权限授予其他用户使用,也可以给其他用户授予 对对象授权的权限。例如,可以授予一个用户拥有对本用户表授予select 权限的权限。?
1.4审计(Auditing)?
Oracle具有审计发生在其内部的所有操作——包括注册企图,对象访问和数据库操作——的 能力。审计的结果存储在数据库的审计表中。?
2. 应用实例与分析?
在一些较大规模的Client/Server系统中,Client端的应用程序一般是通过主程序中的语句 实现与数据库的连接。这种情况下,任何人打开源程序便能清楚了解数据库的连接口令,这 就可能导致安全性问题。经常改变数据库密码是一个办法,而若要改变数据库用户的密码, 就需重新编写相关程序,并对Client端的有关程序进行更新,对于Client端多而分散的系统 ,实际运作很不方便。能不能让这些工作简单易行一些呢?我们在工作中进行了一些尝试。 ?
我单位数据库环境为Oracle7.3,开发工具是Develope2000。收费系统是我单位的核心系统之 一,占有极其重要的地位,其Client端分散在市区的数个营业点,通过城域网与主机(小型 机)相连。收费系统在数据库中的用户名为SFYY(收费应用)。?
试验的步骤是这样的:?
2.1在收费小型机Oracle系统的system用户(DBA)下,创建新用户test;?
create user test?
identified by carton?
default tablespace dataspace1?
quota 100K?
2.2对test用户授以权限;?
grant create session to test;?
grant resource to test;?
2.3在test用户下建立一个存储函数mmtranslate,它其实是一个加密程序。下面是一个简 单的例子。?
function mmtranslate(m varchar2)?
return varchar2?
as?
《提高Oracle数据库应用系统安全的举例与分析?》