您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 提高Oracle数据库应用系统安全的举例与分析
提高Oracle数据库应用系统安全的举例与分析赵晋王维民(合肥市电信局计算中心)摘要本文介绍了作者为了提高Oracle数据库安全所进行的一些有益尝试。关键词Oracle数据库安全1.Oracle数据库安全的几个基本概念1.1帐户安全(AccountSecurity)要在数据库中访问数据,就必须访问该数据库的一个帐户。每个帐户必须指定一个口令。口令是在帐户建立的时候设置的,可由DBA或用户进行修改。1.2系统级权限(System-levelPrivilege)系统级权限可以建立从系统级权限全集到扩展的基本系统级的各类角色。比如,Connect,Resource和DBA就是分别提供给用户,开发者及DBA的标准角色。1.3对象安全性(ObjectSecurity)用户可以通过grant命令将自己创建的一些权限授予其他用户使用,也可以给其他用户授予对对象授权的权限。例如,可以授予一个用户拥有对本用户表授予select权限的权限。1.4审计(Auditing)Oracle具有审计发生在其内部的所有操作——包括注册企图,对象访问和数据库操作——的能力。审计的结果存储在数据库的审计表中。2.应用实例与分析在一些较大规模的Client/Server系统中,Client端的应用程序一般是通过主程序中的语句实现与数据库的连接。这种情况下,任何人打开源程序便能清楚了解数据库的连接口令,这就可能导致安全性问题。经常改变数据库密码是一个办法,而若要改变数据库用户的密码,就需重新编写相关程序,并对Client端的有关程序进行更新,对于Client端多而分散的系统,实际运作很不方便。能不能让这些工作简单易行一些呢?我们在工作中进行了一些尝试。我单位数据库环境为Oracle7.3,开发工具是Develope2000。收费系统是我单位的核心系统之一,占有极其重要的地位,其Client端分散在市区的数个营业点,通过城域网与主机(小型机)相连。收费系统在数据库中的用户名为SFYY(收费应用)。试验的步骤是这样的:2.1在收费小型机Oracle系统的system用户(DBA)下,创建新用户test;createusertestidentifiedbycartondefaulttablespacedataspace1quota100K2.2对test用户授以权限;grantcreatesessiontotest;grantresourcetotest;2.3在test用户下建立一个存储函数mmtranslate,它其实是一个加密程序。下面是一个简单的例子。functionmmtranslate(mvarchar2)returnvarchar2asinumber(2);kkvarchar2(10);beginkk:=′′;i:=1;loopifi=length(m)thenifinstr(′1234567890′,substr(m,i,1),1,1)0thenkk:=kk||chr(100+to_number(substr(m,i,1)));elsifinstr('wxyz',substr(m,i,1),1,1)0thenkk:=kk||chr(-8+ascii(substr(m,i,1)));elsekk:=kk||chr(4+ascii(substr(m,i,1)));endif;elseexit;endif;i:=i+1;endloop;returnkk;exceptionwhenothersthenreturn′-1′;end;2.4在test用户下建表mmtest并插入记录。createtablemmtest(usnamevarchar2(6),------用户名称mimavarchar2(6)------加密前的密码);insertintommtestvalues('sfyy','eds2');commit;2.5执行以下语句SQLselectmmtranslate('eds2')fromdual;MMTRANSLATE('EDS2')----------------------------------------ihwf利用DBA权限更改sfyy的密码为上面语句的执行结果:alterusersffyidentifiedbyihwf;;2.6修改应用程序,对于开发环境是Develope2000的程序来说,主要是修改主程序的on-logon触发器:declaremmvarchar2(6);beginlogon('test','carton');selectmimaintommfrommmtestwhereusname='sfyy';mm:=mmtranslate(mm);logout;logon('sfyy',mm);end;然后再利用触发器WHEN-NEW-FROM-INSTANCE执行Callfrom或Newform等命令,进入业务处理程序。这个主程序应当仅仅由管理员来掌握,编译之后将执行文件下发到各收费点的Client端。2.7在System用户下,利用Oracle提供的pupbld.sql,建立表Productuserprofile,执行下面这样的命令,限制在非开发状态Sql命令的使用,例如insertintoproductuserprofile(product,userid,attribute,charvalue)values('SQL*Plus','TEST','CONNECT','DISABLED');insertintoproductuserprofile(product,userid,attribute,charvalue)values('SQL*Plus','SFYY','DELETE','DISABLED');这样,在SQL状态下,根本无法连接到TEST用户,而在sfyy用户下,delete命令将不能执行。当然,DBA可以改变这些设置。3.可以看出,通过上述的一系列处理,无须更新程序便能实现应用系统数据库(本例中的sfyy)密码的定期或经常的改动,大大提高了维护效率。Test用户的口令只有DBA掌握;过程mmtranslate的加密方式也可以经常改变。这些都保证了安全性。另一方面,还要加强对源程序的管理,在Client端只存放执行程序。加强审计,发现异常现象,及时处理。通过这些手段,数据库安全得到了更好保证。MVision解决方案创新创先Micron将于7月正式推出一套MVision计划,专门帮助行业用户和政府部门进行以下活动:提高他们的IT人员的能力,增加他们的财政来源,以及从事高收益的科技。MVision计划的第一阶段包括:16项提高IT人员生产力的新的产品和服务;新的增加财政来源计划和提供高科技帮助。通常计算机供应商提供的以上各种项目只为被美国《财富》杂志评为的全美前500名企业服务。而Micron为满足行业用户和政府部门的需求而为他们提供了上述项目,从而成为这一行业中领导者。Micron董事长兼CEOJeolKrocher先生说:“Micron的MVision计划的第一步的基础是IT专业人士和高级管理的直接输入。它主要是为了让行业部门和政府机构中的IT人员更加有步骤、有效率的工作。通过MVision计划,我们希望帮助我们的客户减少配置PC机的运转费用,并利用高科技来进行他们的合作项目。这意味着用在用户支持和管理上的IT预算和人员将会减少。同时,也意味着将帮助我们的客户提高技术水准。而这些技术能减少开支并提高机构的效率。
本文标题:提高Oracle数据库应用系统安全的举例与分析
链接地址:https://www.777doc.com/doc-14061 .html