Oracle数据库应用系统的安全性

来源 :城市建设理论研究 | 被引量 : 0次 | 上传用户:nene7
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:从开发应用程序的角度出发,深入理解oracle数据库的安全策略。结合当前的数据加密技术,提出由应用程序开发人员和数据库管理人员共同提高应用系统安全性的新观念,并以提高Oracle数据库应用系统安全性为例加以实现。
  关键词:Oracle数据库应用程序安全
  中图分类号: G250.74文献标识码:A 文章编号:
  在一些较大规模的客户/服务器系统中,许多数据库管理员都会遇到由于应用程序的安全漏洞,导致数据库中数据丢失的问题,这时,数据库管理员除了从备份中恢复数据外别无它法。但是,只要在开发程序时,事先考虑系统的安全问题,便可以提高应用系统的安全性。以往在开发数据库应用程序时,软件的登录界面大多是直接使用数据用户进入程序的,知道数据拥有用户口令的人就越多,这样他们除了通过应用程序连接数据库外,还可以用许多其它的工具连接数据库,近而可以对该用户所拥有的数据做任意的修改、删除等操作,使其中的数据再无安全可言,而系统却认为其是合法的,因为他是以合法身份进入数据库的。尽管经常改变数据库的用户密码是为保障数据库系统安全而经常采用的一个基本办法,可对于那些已经将认证用户和密码写在程序中的应用系统,数据库管理员又不能随意地改动该用户的口令,因为一旦口令发生变化,应用程序的开发人员就要重新改写程序中的相关部分,重新进行编译后再下发给各个推广单位,所有这些工作对于客户端多而分散的应用系统而言,工作量大,实际运作极不方便。针对这一问题,我们提出在开发数据库应用系统时,应结合基础数据库的安全策略,由应用程序开发人员和数据库管理人员来共同提高数据库应用系统的安全性,近而提高数据库的安全性。
  1应用技术
  1.1数据加密技术
  数据加密技术,是为提高信息系统及数据的安全性、保密性和防止秘密数据被破解所采用的主要技术手段之一。随着信息技术的发展,网络安全与信息保密日益引起人们的关注。目前各国除了从法律上、管理上加强数据的安全保护外, 还分别在软件和硬件两方面采取措施,促使数据加密技术和物理防范技术不断发展。按作用不同, 数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术四种。
  (1)数据传输加密技术。数据传输加密技术的目的是对传输中的数据流加密, 常用的方法有线路加密和端到端加密两种。前者重在线路上而不考虑信源与信宿, 是对保密信息通过各线路采用不同的加密密钥提供的安全保护。后者指信息由发送端自动加密,并进入TCP/IP数据包回封, 然后作为不可阅读和不可识别的数据穿过互联网, 这些信息一旦到达目的地将被自动重组、解密, 成为可读数据。
  (2)数据存储加密技术。此项技术的目的是防止在存储环节上的数据失密, 可分为密文存储和存取控制两种。前者一般是通过加密算法转换、附加密码以及加密模块等方法实现; 后者通过对用户资格及权限加以审查和限制、防止非法用户存取数据或合法用户越权存取数据来实现。
  (3)数据完整性鉴别技术。此项技术的目的是对信息的传送、存取、处理人的身份和相关数据内容进行验证, 达到保密的要求。一般包括口令、密钥、身份和数据等项的鉴别。 系统通过对比验证对象输入的特征值是否符合预先设定的参数, 实现对数据的安全保护。
  (4)密钥管理技术。为了让数据使用得更方便, 数据加密在许多场合集中表现为密钥的应用, 因此密钥往往是保密与窃密的主要对象。密钥的管理技术包括密钥的产生、分配保存、更换与销毁等各环节上的保密措施。
  1.2基础数据库安全机制分析
  oracle数据库是支持客户、服务器方式的大型关系数据库系统,它提供了一系列相对较完善的安全机制:
  (1)帐户安全(Account Security)。要在数据库中访问数据,就必须访问该数据库的一个帐户。每个帐户必须指定一个口令。口令是在帐户建立的时候设置的,可由数据库管理员或用户自己进行修改。
  (2)系统级权限(System-level Privilege)。系统级权限可以建立从系统级权限全集到扩展的基本系统级权限的各类角色。比如,Connect, Resource和DBA就是分别提供给用户,开发者及数据库管理员的标准角色。
  (3)对象安全性(Object Security)。用户可以通过授权命令将自己创建的一些权限授予其他用户使用,也可以给其他用户授予对对象授权的权限。例如,可以授予一个用户拥有对本用户表授予查询权限的权限。
  2技术实现
  虽然oracle数据库提供了较为完善的安全机制,但是如果在开发应用程序时,认为安全只是数据库管理员的责任,而将拥有数据的用户及口令固化在程序中,这样会大大地降低应用系统的安全性,甚至直接威胁到整个数据库的安全,所以,我们可以根据基础数据库本身的安全机制,结合应用程序的自身特点,采用多种办法,即提高数据库及应用系统的安全系数,而又方便应用程序的推广。我单位数据库环境为Oracle,应用程序的开发工具是PB或Delphi等。应用程序客户端的每个节点通过局域网与数据库服务器相连。为了实现提高数据库应用系统安全性的目的,在开发应用程序时,采用了如下的办法:
  2.1基于底层数据库的安全机制,在数据库中增建应用程序管理用户
  应用程序管理用户只是起管理作用,他只包含用于管理数据用户及口令的管理表,而不包含任何生产数据,在此,采用了数据库安全管理的帐户认证机制和系统级权限机制,具体sql实现为:
  (1)创建应用程序管理用户test。由数据库管理员创建基本用户:create user test;identified by test;default tablespace dmgc;quota 100K
  (2)对test用户授以系统级权限。grant create session to test;grant resource to test;
  (3)在应用程序管理用户下,创建用于管理数据用户的管理表并插入记录。数据用户管理表由两列构成,分别是用户名称和未经过处理的用户口令。create table test;(uname varchar2(6),------用户名称;mima varchar2(6)------加密前的密码);insert into test values( 'dmgc', 'dmgc');commit;
  2.2采用算法加密技术,处理数据用户的口令
  目前加密技術主要有四种,每种技术又可细分为多种方法,可根据需要选择适当的方式实现。一般,在给用户设置口令时,通常是按某种规律进行选择的,可能是生日、名字缩写或是电话号码等,这是很不安全的,所以我们只要采用一种极为简单的算法,就可以将有规律可循的信息,变成随机的代码,从而降低了口令被破解的可能性。本文在应用程序管理用户下建立一个存储函数mmtranslate,主要是用来对其中存放的数据用户的口令进行处理的。
  function mmtranslate(m varchar2)
  return varchar2
  as
  i number(2);
  kk varchar2(10);
  begin
  kk:=′′;
  i:=1;
  loop
  if i<=length(m) then
  if instr(′1234567890′,substr(m,i,1),1,1)>0 then
  kk:=kk||chr(100+to_number(substr(m,i,1)));
  elsif instr('wxyz',substr(m,i,1),1,1)>0 then
  kk:=kk||chr(-8+ascii(substr(m,i,1)));
  else
  kk:=kk||chr(4+ascii(substr(m,i,1)));
  end if;
  else
  exit;
  end if;
  i:=i+1;
  end loop;
  return kk;
  exception
  when others then
  return ′-1′;
  end;
  接下來我们对数据用户的口令进行加密处理,进一步提高系统的安全性。我们的具体做法是:
  (1)获得加密处理后的口令
  SQL>select mmtranslate('dmgc') from dual;
  MMTRANSLATE('dmgc')
  ----------------------------------------
  ihwf
  (2)利用DBA权限更改数据处理用户的密码为加密处理后的结果:
  alter user dmgc
  identified by ihwf;
  2.3开发编写应用程序系统
  现在开发应用程序时,我们在主程序的登录界面logon中,可使用早已设置的应用程序管理用户连接到数据库中,从其中的管理表中找到特定的数据用户和口令,再连接到所要操作的数据用户进行正常的数据处理。
  declare
  mm varchar2(6);
  begin
  logon('test','test');
  select mima into mm from test where uname='dmgc';
  mm:=mmtranslate(mm);
  logout;
  logon('sfyy',mm);
  end;
  此时,如果再修改数据用户的口令,已经不用再修改应用程序,而只要应用程序管理用户维护一下用户管理表就行了。另外,因为应用程序管理用户中没有真正的数据,即使有人用其连接到数据库中,也不威胁我们的数据。
  2.4进一步加强权限限制,保证应用系统的安全
  为了做得更加完美一些,我们在数据库管理员用户下,利用Oracle提供的pupbld.sql批处理文件, 建立表Productuserprofile,并在其中插入相应的权限限制记录,来限制在非开发状态通过Sql命令使用应用程序管理用户连接数据库。
  insert into productuserprofile
  (product,userid,attribute,charvalue) values
  ('SQL*Plus','TEST','CONNECT','DISABLED');
  insert into productuserprofile
  (product,userid,attribute,charvalue) values
  ('SQL*Plus','dmgc','DELETE','DISABLED');
  这样,在SQL状态下,即使知道用户test的口令,也根本无法连接到应用程序管理用户(TEST),因而也就无法查看其中存放的应用程序管理表中的信息。经过这些处理后,在推广应用程序时,客户端使用应用程序管理用户连接数据库,完全屏蔽了数据用户的信息,提高了应用系统的安全性。
  3 结束语
  解决、提高数据库应用系统安全的方法有很多,其中最主要的是开发人员要有足够的认识。应用程序开发人员是具体业务的执行者,对反映具体业务的数据应承担相应的责任并持有对等的权利,责任和权利应在管理员和计算机系统人员谋划的办法、系统中得到具体的体现,这样数据及管理才有保障;计算机管理人员关键是认清问题的实质,得出严密、细致的实施方法,并为业务人员提供必要的“手段”。在开发应用程序时,还要加强对源程序的管理,尽量在客户端只存放执行程序;同时还要加强对数据库的审计,发现异常现象,及时处理。如果应用程序开发人员能够在开发软件时,认识自己对反映具体业务的数据应承担的责任和权利,认真考虑应用系统和数据库的安全,采用合适的安全措施,不仅给以后的工作带来很大的方便,而且对信息产业会产生深远的影响。应用程序开发人员和计算机管理人都要承担应用系统安全的责任,有责任保证数据安全。
  参考文献:
  [1] 黄莺.论企业信息门户与企业知识门户[J].情报杂志,200593):55-59.
其他文献
摘要:根据我国会计核算制度以及企业实施作业成本法的现状,我国企业作业成本核算的方法可以归纳为两种:会计方式的作业成本核算和统计方式的作业成本核算。作者根据工作经验中的实践中浅论统计方式的作业成本核算。  关键词:统计作业 成本核算计量   中图分类号:C8 文献标识码:A 文章编号:   1、作业成本核算的实施方式  1.1 会计方式的作业成本核算  是要结合现有的企业财务会计和成本核算过程,通过
期刊
摘要:本文首先分析了沥青路面坑槽破损的表现形式,并研究了坑槽修补的材料和相关工艺,以供业内人士参考。  关键词:沥青道路 坑槽破损 修补工艺  中图分类号:TF526+.3 文献标识码:A 文章编号:   坑槽是沥青路面的典型病害,严重影响路面的平整度和行车的舒适性。若不及时修补,在交通荷载和水的综合作用下,破坏会较快发展,造成养护费用的增加并严重危及驾乘人员的安全。  1 沥青路面坑槽破损主要表
期刊
摘要:机电设备安装工程是建筑工程中不可缺少的重要组成部分,直接决定工程的成功与否。本文对建筑机电设备安装过程中的常见问题进行了分析,并提出了相应的对策。  关键词:建筑 机电设备安装 对策  中图分类号:G267 文献标识码:A 文章编号:   1 前言  建筑机电设备的安装需要深刻理解建筑机电安装的计划原则,依据建设计划要求进行安装,保证安装工程能够在建筑整体要求下准确细致的展开。其次是建筑机电
期刊
摘要:建设工程全过程造价管理分为决策阶段、设计阶段、工程招投标阶段、施工阶段和竣工验收阶段五方面对工程造价进行的控制,是一项涉及面广、综合性强的工作。本文从五个方面论述了如何做好工程造价的管理工作。  关键词:工程造价 造价管理   中图分类号: TU723.3文献标识码:A 文章编号:   工程造价管理是指遵循工程造价运动的客观规律和特点,运用科学技术原理和经济及法律等管理手段,解决工程建设活动
期刊
摘要:建筑工程施工中离不开模板工程的施工,其施工的好坏往往会影响到工程的质量和施工的进度,因此要重视模板工程的施工。本文着重探讨了模板工程的施工技术和其安全施工应注意的要点。  关键词:建筑 模板工程 施工技术  中图分类号:TU74 文献标识码:A 文章编号:   1 前言   模板的分类有各种不同的分阶段类方法:按照形状分为平面模板和曲面模板两种:按受力条件分为承重和非承重模板(即承受混凝土的
期刊
摘要:水利工程是我国的基础产业工程,目前我国正在大规模、高速度地进行水利工程基础设施建设,但是水工混凝土却经常受到各种裂缝的威胁,增加了建筑物使用过程中的修理与加固费用,影响或限制了结构的正常使用功能,并缩短结构的使用年限,影响效益和安全。本文文主要对水工建筑物混凝土裂缝渗透产生的原因进行了探讨,并根据实践经验提出在施工中预防裂缝的措施,可供广大同行参考。。   关键词:水工混凝土;裂缝;渗透;预
期刊
摘要:建筑工程管理的目的是以最低投资,实现利益最大化。在实现利益最大化的同时,必须达到建筑工程质量要求、工期要求以及安全技术要求。本文结合工作中的经验简单对工程管理做出简要的探讨。  关键词:工程管理 质量管理 管理方法  中图分类号:F253.3 文献标识码:A 文章编号:   1、工程管理实施质量管理中存在的主要問题与探讨  1.1 质量管理信息渠道不畅通  工程管理公司受业主委托可以行使业主
期刊
摘要:论首先分析了新时期对企业政工工作的要求,指出了当前工作的不足点,然后给出了相应的对策。  关键词:政工;企业;管理  中图分类号:C29 文献标识码:A 文章编号:针对党的十八大《报告》中“如何理解科学发展观的理论和实践成果”这一话题,结合新时期企业思想政治工作实际,就企业政工工作建设状况进行浅析。  一、当前政工工作的不足。  首先表现在部分政工人员专业水平不足上。目前部分政工干部中现代科
期刊
摘要:随着我国经济的发展和建筑技术的进步,现代工业建设项目逐渐向着大规模、高技术的方向发展。因此,一旦投资失控,必将严重影响企业今后的建设和发展,并带来巨大损失,而我国工程建设中还存在着投资效益低下、资金使用效果不理想、投入与产出不相协调等现象。而导致这些现象的原因既有工程建设前期工作的影响,也有施工过程中的影响。因此,如何有效控制项目投资的支出是工程建设迫切需要解决的问题,本文就项目投资中的竣工
期刊
摘要:继电保护及自动装置是电力系统的重要组成部分,保证电力系统的安全经济运行,防止事故发生和扩大起到关键性的作用,本文主要对电力系统的继电保护进行了探讨,可供大家参考。  关键词:继电保护;基本原则 ;故障分析    中图分类号:U226.8+1 文献标识码:A 文章编号:   电力系统安全、可靠运行是非常重要的,从而要求继电保护及自动化装置必需具有很高的可靠性。对于继电保护及自动化装置的可靠性指
期刊