典型数据库安全分析与研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:tyhz3030
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:对数据库安全的研究由来已久,尤其是到了八十年代,出于国家利益和其它原因的考虑,美国空军和国防部等单位更是大力资助这类项目,促进了数据库安全研究的发展.随着计算机和通讯技术的发展使得“计算机网络”的概念变得越来越广,从而使操作系统安全和数据库安全成为当今信息安全的主要课题。
  关键词:数据库;数据库安全;计算机网络;信息安全;计算机
  
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)19-30004-02
  Typical Security Analysis and Research Database
  WU Bin
  (Department of Computer Science Institute, Chaohu Collge, Chaohu 238000, China)
  Abstract: The database of long-standing security, especially in the 1980s, for reasons of national interests and other considerations, the U.S. Air Force and the Department of Defense, and other units are heavily subsidized such projects, promoting the development of database security research. With the computer and communications technology makes the development of "computer network" concept has become more and more widely, so that the operating system and database security in today’s information security has become a major security issue.
  Key words: Databases; database security; computer networks; information security; computer
  
  1 引言
  
  数据库通常都保存着企业,组织和政府部门的各种重要的信息,是电子商务.ERP系统和其他重要商业系统的基础。例如电信部门的用户记录,银行的帐户,财务的数据,这些数据库中的数据关系着企业的生命,也关系着人民群众的财产,一旦遭到破坏和丢失都会带来巨大的损失。因此,如何保证这些数据的正确、安全、有效,一直是科学界和产业界关注和研究的重点。
  与操作系统安全、网络安全相比,数据库安全有其独特之处。数据库系统和操作系统的重要区别之一是:操作系统并不关心相关的数据对象的语义.由于对操作系统的研究相对成熟,人们试图把数据库系统的概念和安全与操作系统中的可信计算基TCB(Trusted Computing Base)的概念融合起来,但发现数据库的安全性较操作系统的安全性要复杂得多.之所以出现这种情况,其根本原因在于:操作系统保护的对象一般是以文件为单位,它只涉及一个很小的TCB,数据库系统要保护的对象是对关系数据库而言则可能是以行、列甚至元素为单位的,因而将涉及一个很大的TCB。关于网络安全,尽管从理论上讲并非如此,人们往往把网络安全就定义为加密,但实际上加密只是解决网络安全的某些问题的手段。加密对数据库安全来说也并不令人满意,因为数据库的发展就是为了实现大量用户对数据的共享,对数据库加密必定会带来密钥的分配和管理的困难。
  
  2 FoxPro数据库安全
  
  由于FoxPro这种库本身结构,所以在库设计时不能与安全机制同时进行.只能被动地在后台软件中实现安全保护.通常的方法有以下几种:
  (1) 设置口令这是一种最为简便的方法.通过口令的校核来达到对数据库保护的目的。但这种方法只能将数据隐藏于应用系统中,比较适合对价值不大的数据(对于口令的存放,可以直接放在程序中,也可存放在库文件中,或通过加密存放在文件中)。
  (2) 密码法这种方法应用较多,安全机理主要在于函数运算的可逆性不佳,比如在程序或文件或CMOS RAM 中存放一个源数,然后经过高次函数(超越函数更好)运算得到密码。这样得到的密码可通过源数的改变而改变。并且数符变换在FoxPro数值表达范围内由val( )和str( )方便地进行,所以灵活性强且方便,但容易被跟踪。
  (3) 以上两种方法都不能保证库在操作系统下被存取,而第三种方法就是对库文件进行加密,通过汇编或C语言编写一段对库头、字段或整个文件进行加密的二进制模块,然后由应用系统对它进行调用即可。
  但是由于这些数据库安全措施都是被动设置的,会出现考虑不周的情况,而且也容易被反加密软件所破密。
  
  3 SQL Server数据库安全
  
  3.1 使用视图进行数据隔离保护
  视图是一种虚表,是由一个或多个表中的行和列组成的子集,是从一个或多个表派生出来的数据库对象。视图通过限制访问表的特定行和特定列来保证数据的安全,实现行级或列级的安全性。例如,表中的BirthDate列包含了机密的雇员信息,但是表中其他列包含的是用户必须访问的信息。那么,就可以定义一个视图,使它包含表中除了BirthDate列以外的所有列。只要表和视图的所有者相同,那么将视图的SELECT权限授予用户就可以允许用户查看非机密的信息,而不需要将表的权限授予用户,从而防止用户对基表的操作,实现了对数据的隔离保护。
  3.2 使用触发器进行数据完整性保护
  触发器是SQL Server系统是用于响应数据变化的一种机制,它实际上是一段程序,当某种条件被触发时,触发器自动触发执行,产生一系列的操作或回退那些破坏数据库完整性的操作。触发器可以包含非常复杂的程序设计逻辑,从而扩展约束、默认值和规则的完整性检查,防止对数据的不正确修改。在具体的数据库应用系统中,可做如下处理:
  (1)建立主表的INSERT,UPDATE触发器,一旦主表执行插入、修改操作,与主表相关联的表也进行相应的操作;
  (2)建立相关表的级联式DELETE触发器,一旦删除其中的某一条或某几条记录时,将触发执行删除主表相应的记录。
  3.3 加强Sa账号管理
  SQL Server的管理员账号是sa,该帐号的密码在默认情况下为空。由于SQL Server不能更改sa账号名称,也不能删除这个账号,所以,我们必须对其进行最强的保护。首先要给sa设置一个密码,密码不可过于简单,也不要在应用程序或脚本中出现。另外,建议新建一个与sa具有相同权限的超级用户来管理数据库,不要在数据库应用中直接使用sa账号,只有当没有其它方法登录到SQL Server实例(当其它系统管理员不可用或忘记了密码)时才使用sa。
  3.4 启动备份策略
  为了防止数据遭到破坏,需要定期对业务系统的数据进行备份,并将副本保存在安全的地方。通常采用的最佳方案是将其存储在服务器的本地硬盘驱动器上,以便在需要时能够迅速获取,并将数据拷贝保存在多个存储介质中(如光盘、移动硬盘、专用服务器),不仅保存当前的转储文件,还要保存前几次的数据文件,以增加恢复数据时的“安全系数”。
  
  4 Oracle数据库安全
  
  4.1 角色
  角色是用来简化用户权限分派的管理任务,用户可以被指派多个角色。将权限组织到角色中后再利用角色对一个或多个用户授权使授权管理变得更加容易。Oracle拥有一些特定权限的默认角色。如:Connect角色允许用户登录和建立自己的表、索引等;Resource角色允许用户建立触发器和存储过程等对象。数据库管理员DBA角色被授予所有管理数据库和用户的系统权限。用户为方便管理可以建立自定义的角色。
  4.2 概要文件
  Oracle利用概要文件来允许管理员针对一些系统资源,密码的利用。这些概要文件可以被定义、命名、然后指派给特定的用户或用户组。概要文件可以用来设置用户在特定的系统资源上的限制,如CPU时间、同时建立的有效会话数、特定用户建立会话的最大时间等。此外,概要文件也可以用来强制定义密码规则,如密码有效期、密码格式、在若干次登录失败尝试后锁定账户,也可以利用自定义密码格式规则函数来限制密码的设置规则。
  4.3 细粒度访问控制机制
  Oracle提供了细粒度访问控制机制Oracle Label Security,可实施对单个表或整个模式上的行级访问控制。要利用Oracle Label Security,需要创建一个或多个安全策略,其中每一个安全策略都包含一组标签。标签用来标明哪些用户能够访问什么类型数据。在创建了一个策略之后。将该策略应用于需要保护的表,并将这些标签授予用户。当Oracle数据库在解析SQL 语句时会检测表是否受到某个安全策略的保护,根据用户的访问权限数据库向该SQL语句的WHERE子句中添加安全性谓词。所有这些都发生在Oracle数据库引擎的内部,所以不管该SQL语句的来源如何,用户都不可能绕过该安全性机制,从而达到行级安全的访问控制。
  
  5 总结
  
  人们对多级安全数据语义研究的深入,必将使数据库安全的理论和实践有大的飞跃。我们认为在未来一段时间内,研究的重点应从以下几个方面入手:
  (1)安全模型、安全数据模型及安全计算机体系结构的研究。绝对安全的系统可能是不存在的,因此人们需要在功能、效率和安全特性之间有所折衷;
  (2)对数据库安全的威胁和数据安全策略的需求描述的形式化。正如人们需要了解计算机病毒的机制一样,只有很好地认识到了对于数据库安全的威胁,才能采取有效的措施来防范和对付;
  (3)多级安全数据库的语义。除非系统的语义能表述安全特性,否则系统很难具有给定的安全特性。然而人们至今尚未完全了解多级数据库的语义,从而也就不可能从根本上保证数据库中数据的一致性;
  (4)隐秘推理通道的检测与消除,完整性约束和安全需求的制约关系;
  (5)如何验证一个数据库系统实现了给定的安全需求,如何高效地证明一个系统达到了给定的安全标准。
  
  参考文献:
  [1] 徐寿怀, 胡美琛. 数据库安全研究的现状与问题[J]. 计算机工程, 1997,(03).
  [2] 贺春林, 滕云. 数据库安全进展研究[J]. 通化师范学院学报, 2003,(06).
  [3] 张增军, 戴江山, 肖军模. 基于Rough集理论的数据库推理通道动态消除[J]. 国防科技大学学报, 2005,(02).
  [4] 崔国华. 基于关系数据库的推理通道分析模型[J]. 计算机与数字工程, 2000,(01).
  [5] 谭小野, 程胜, 车玫. 一种基于标记的动态推理控制方法[J]. 电子技术应用, 2006,(05).
  [6] 黄松英. 多级安全关系数据库设计过程中推理问题研究[J]. 华南金融电脑, 2005,(08).
  [7] 朱勤, 韩忠明, 乐嘉锦. 基于推理控制的数据库隐私保护[J]. 南通大学学报(自然科学版), 2006,(03).
  [8] 丁小刚, 柏文阳. 一种基于概念图的推理问题解决方法[J]. 微型机与应用, 2005,(10).
  [9] 程立考. 安全数据库系统推理问题的研究[J]. 信息技术, 2006,(06).
  [10] 朱虹, 史凌云, 张勇. 多级安全数据库系统推理问题研究[J]. 计算机工程与应用, 2004,(13).
其他文献
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络地址和主机地址。子网划分时,子网掩码设置的不同,所得到的子网不同,每个子网能容纳的主机数目不同,若设置错误,可
本文阐述了网络安全传统的应对方法,并介绍了新的信息安全解决方案UTM的产生、市场及未来的发展。
1998年7月18~21日,阳朔县普益乡古乐屯猪群中暴发了一种以发病急、死亡快且病死率高为主要特点的传染病。经诊断为巴氏杆菌病,经及时采取有效措施,扑灭了疫情。现将发病情况及诊治情况报告
以数据库为中心的管理信息系统,查询操作最多。查询操作的优劣直接影响数据库应用程序的性能,因此必须对数据库的查询进行优化。提出了一些如何利用关系数据查询技术实现数据库
模拟电子技术课程是电子信息类专业的重要课程,但在教学过程中同学们对很多典型电路的工作原理理解仅仅依靠教师进行分析,结合部分实验来加强理解,这对学生知识的掌握上存在一定
分别从邕宁和灵山引进本地麻鸡,从中选留核心群,并进行扩繁和世代选育,同时与伴性矮小D2鸡进行正反杂交组合,观测亲本和杂种后代的性状,得出了阶段性结果:平养麻鸡400日龄产蛋85枚。笼养麻
针对广义超立方体网络中的同时具有大量结点和链路故障模式,提出了两类新的局部连通性概念。在这两类局部连通性概念的基础上给出了两个广义超立方体网络的分布式容错路由算
基于AJAX技术的Web模型在网站开发中的应用研究,该文将着重分析Ajax的概念、工作原理、无刷新技术的应用、提出一种基于Ajax的Web无刷新页面更新数据的方法及Ajax的优势。