




已阅读5页,还剩74页未读, 继续免费阅读
(计算机科学与技术专业论文)数据库访问加密及通用接口的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
l,liiiil at h e s i si nc o m p u t e rs c i e n c ea n dt e c h n o l o g y a n a l y s i so fs a f e t y i nd a t a b a s ea c c e s ss a f e t y a n d i m p l e m e n t a t i o no fu n i v e r s a li n t e r f a c e b yy a og u o f e n g s u p e r v i s o r :p r o f e s s o ry a n gg u a n g m i n g n o r t h e a s t e r nu n i v e r s i t y j u n e2 0 0 9 一 独创性声明 本人声明,所呈交的学位论文是在导师的指导下完成的。论文中取得 的研究成果除加以标注和致谢的地方外,不包含其他人己经发表或撰写过 的研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示 谢意。 学位论文作者签名:翻弋虱风 日期:2 0 钾j 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学 位论文的规定:即学校有权保留并向国家有关部门或机构送交论文的 复印件和磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学 位论文的全部或部分内容编入有关数据库进行检索、交流。 作者和导师同意网上交流的时间为作者获得学位后: 半年口一年口一年半口两年口 学位论文作者签名:挑画凡 签字日期:a o o i 6 导师签名: 签字日期: 洲。s 一1 _ 东北大学硕士学位论文摘要 数据库访问加密及通用接口的设计与实现 摘要 随着计算机在社会各个领域的广泛应用,人们对信息系统的依赖程度越来越高, 数据库在计算机和软件开发领域的作用是至关重要的。数据库系统负担着客户端对数 据信息的访问控制和存储管理的任务,数据库中的数据( 包括一些机密数据) 一般以 明文的形式保存。关键数据以明文的形式在数据库中存储使数据库的安全性降低,通 过对数据库中关键字段的加密可以提高其安全性。在应用程序的开发过程中,由于需 求的不断变化可能会应用多种数据库系统作为数据的存储介质,而各种数据库对外的 a p i 接口却不尽相同,这给程序开发人员带来很大麻烦。一旦后台数据库变更,程序 中与数据库相关的程序段都要修改,这使得开发人员的工作量加大。所以,有必要在 应用程序和数据库之间实现一个可以支持多种数据库的访问接口。 本文在分析和研究数据库加密领域文献的基础上,对数据库加密技术进行了深入 的研究。加密组件实现了在d b m s 外层基于字段的加密;加密算法方面,采用非对称 算法和对称算法相结合的方法,用对称算法和非对称算法分别对数据和密钥进行加密, 这样既保证了加解密的效率又提高了安全性。在密文数据的查询方面,对于字符型数 据采用两阶段查询算法;对于数值型数据采用基于b + 树的查询算法,与传统的查询算 法相比,以上两种改进的查询算法的效率都有所提高。通用接口方面,在充分分析了 不同数据库的特点和a p i 差异的基础上,提出了通用的数据库操作方法,并基于组件 技术设计和实现的数据库访问的通用类库。 关键词:数据库加密;通用接口;字段加密;查询算法 东北大学硕士学位论文a b s tr a c t a n a l y s i so fs a f e t yi nd a t a b a s e a c c e s ss a f e t y a n d i m p l e m e n t a t i o no f u n i v e r s a li n t e r f a c e a bs t r a c t w i lt h ed e v e l o p m e n to fc o m p u t e rs c i e n c ei na l l s p h e r e so fs o c i e t y , p e o p l e s d e p e n d e n c eo ni n f 0 1 i l l a t i o ns y s t e m si sb e c o m i n gm o r e t h ed a t a b a s ei nt h ef i e l do f c o m p u t e r sa n ds o f t - w a r ed e v e l o p m e n tr o l ei se s s e n t i a l t h ed a t a b a s es y s t e mi si nc h a r g eo f c o n t r o lo fd a t aa c c e s sa n dt h et a s ko fs t o r a g em a n a g e m e n t ,a n dt h e d a t a ( i n c l u d i n g c o n f i d e n t i a ld a t a ) u s u a l l ys t o r ei nd a t a b a s ew i t h o u te n c r y p t i o n c r i t i c a ld a t ai no r d e rt o e x p r e s st h ef o r mo fs t o r a g ei nt h ed a t a b a s es ot h a tt h es e c u r i t yo ft h ed a t a b a s et or e d u c e , t h r o u g ht h ek e y w o r ds e c t i o no ft h ed a t a b a s et oi m p r o v et h eq u a l i t yo fe n c r y p t i o ns e c u r i t y i nt h ea p p l i c a t i o nd e v e l o p m e n tp r o c e s s ,d u et ot h ec h a n g i n gn e e d so f t h ea p p l i c a t i o nm a yb e av a r i e t yo fd a t a b a s es y s t e m sa sad a t as t o r a g em e d i u m ,a n dav a r i e t yo fe x t e m a ld a t a b a s e a r en o tt h es a m ea p ii n t e r f a c e ,w h i c hd e v e l o p e r sh a v eag r e a tt r o u b l e o n c et h ec h a n g e p r o c e s sb a c k - e n dd a t a b a s ea n dd a t a b a s e r e l a t e dp r o g r a ms e g m e n tm u s tb em o d i f i e d ,w h i c h a l l o w s d e v e l o p e r s t oi n c r e a s et h e w o r k l o a d t h e r e f o r e , i ti sn e c e s s a r yt o b e t w e e n a p p l i c a t i o n sa n dd a t a b a s e st os u p p o r tt h er e a l i z a t i o no fav a r i e t yo fd a t a b a s ea c c e s s i n t e r f a c e i nt h i sp a p e r , a n a l y s i sa n dr e s e a r c hi nt h ef i e l do fl i t e r a t u r ed a t a b a s ee n c r y p t i o n ,b a s e d o nt h ee n c r y p t i o no nt h ed a t a b a s eh a da ni n - d e p t hr e s e a r c h e n c r y p t i o nc o m p o n e n t st o a c h i e v ei nt h eo u t e rl a y e ro fd b m s b a s e d e n c r y p t i o nf i e l d ;e n c r y p t i o na l g o r i t h m ,t h eu s eo f n o n s y m m e t r i ca l g o r i t h m sa n da s y m m e t r i ca l g o r i t h m sc o m b i n e dw i t hs y m m e t r i ca l g o r i t h m s a n da s y m m e t r i ca l g o r i t h m s ,r e s p e c t i v e l y , o ft h ed a t aa n dk e y sf o re n c r y p t i o n , i te n s u r e st h e e f f i c i e n c yo fe n c r y p t i o na n di m p r o v e ds e c u r i t y c i p h e rt e x td a t ai n t h ei n q u i r i e s ,t h e c h a r a c t e rd a t au s i n gt w o - p h a s eq u e r ya l g o r i t h m ;n u m e r i c a ld a t af o rt h eb + t r e e b a s e dq u e r y a l g o r i t h m ,a n dc o m p a r e dt ot h et r a d i t i o n a ls e a r c ha l g o r i t h m s ,b o t ht oi m p r o v et h ee f f i c i e n c y o fs e a r c ha l g o r i t h m sh a v ei m p r o v e d c o m m o ni n t e r f a c e ,i naf u l la n a l y s i so ft h ed i f f e r e n t d a t a b a s ea p id i f f e r e n c e sb e t w e e nt h ec h a r a c t e r i s t i e sa n do nt h eb a s i so fac o m m o nd a t a b a s e o p e r a t i o n ,a n dc o m p o n e n t b a s e dt e c h n i c a ld e s i g na n dr e a l i z a t i o no fac o m m o nd a t a b a s e a c c e s sl i b r a r y k e y w o r d s :d a t a b a s ee n c r y p t i o n ;c o m m o ni n t e r f a c e ;f i e l de n c r y p t i o n ;q u e r ya l g o r i t h m i i i 东北大学硕士学位论文 目录 目录 独创性声明i 摘要i i a b s t r a c t i i i 第l 章绪论1 1 1 课题研究背景和意义1 1 2 国内外研究动态1 1 2 1 数据库接口的研究现状1 1 2 2 加密数据库的国内外研究现状2 1 3 数据加密对数据库的影响5 1 4 题研究内容6 1 5 论文组织结构6 第2 章关键技术介绍9 2 1 数据库接口技术9 2 1 10 d b c 9 2 1 2j d b c 10 2 1 3o c i 1 1 2 2 数据库加密1 2 2 2 1 加密层次的选择1 2 2 2 2 加密算法。1 4 2 2 3 加密粒度1 5 2 2 4 数据库加密与操作系统的关系1 6 第3 章需求分析l9 3 1 系统的整体说明1 9 3 1 1 数据库通用接口实现的目标。1 9 3 1 2 数据库加密实现的目标1 9 3 2 功能需求2 0 3 2 1 数据库访问加密功能2 2 3 2 2 数据库通用接口功能2 3 3 2 3 数据模型2 3 3 3 非功能需求2 4 3 4 可行性分析2 5 第4 章系统设计2 7 4 1 系统架构概述2 7 4 2 数据库通用类设计2 8 4 3 加密设计2 9 东北大学硕士学位论文 目录 4 3 1 字段加密方式3 0 4 3 2 加密数据的关系操作3 2 。 4 3 3 存储与查询的体系结构3 4 4 4 查询算法的设计3 6 4 4 1 两阶段查询算法3 6 4 4 2 基于b + 树的查询算法3 7 4 5 密钥的管理3 9 4 5 1 密钥管理存在的问题。3 9 4 5 2 数据库密钥的加密方法分析4 0 第5 章系统实现4 5 5 1d b d a t a b a s e 类的实现4 5 5 2 数据访问组件核心类的实现4 7 5 2 1 核心类体系结构介绍。4 7 5 2 2 使用s q l a s s i s t 类执行命令4 8 5 2 3 使用s q l a s s i s t p a r a m e t e r c a c h e 类管理参数4 9 5 3 核心类具体实现。5 0 5 3 1s q l a s s i s t 类实现详细信息5 0 5 3 2s q l a s s i s t p a r a m e t e r c a c h e 类实现详细信息5 2 5 4 数据库加解密引擎的实现5 2 5 4 1 对原有表结构的改造5 2 5 4 2 在改造后的表上建立视图5 2 5 4 3 建立替代式的触发器5 3 5 5d b d a t a b a s e 类在n e t 中的实现5 4 5 6 组件在n e t 中的使用5 6 第6 章系统测试5 9 6 1 测试技术5 9 6 2 测试环境。6 0 6 3 功能测试6 0 6 4 查询算法效率测试6 l 第7 章总结与展望。6 3 7 1 总结6 3 7 2 不足与展望。6 3 参考文献6 5 致谢6 7 东北大学硕士学位论文等1 章绪论 第1 章绪论 1 1 课题研究背景和意义 在软件开发的过程中,面对同样的需求程序员经常需要根据客户的要求,选择不 同的后台数据库。有时又要在升级软件的过程中,更换新的数据库产品。这为程序的 设计、开发、维护带来了一定的难度。基于组件技术设计的数据库访问通用接口可以 自动识别后台数据库的具体类型,并根据后台数据库生成对应的数据库接口,为程序 实现数据库访问的功能。 数据库的安全性也是在设计接口程序时需要考虑的一个重要问题。数据库中敏感 信息窃取或篡改的主要原因就是数据库内容以明文形式存放在数据库中或通过网络明 文传输,如果对存放在数据库中的数据和网络上传输的数据进行加密,那么上述问题 就可以得到解决。即使攻击者非法入侵到系统中或窃得数据存储介质,没有相应的密 钥,仍然不能窃取和篡改数据。 1 2 国内外研究动态 1 2 1 数据库接口的研究现状 数据库接口技术随着计算机技术的发展,也随着各种开发语言对类的全面支持及 组件技术的发展,逐渐从面向专一的关系型数据库系统向面向通用的关系型数据库系 统转变;从过程化的程序设计向面向对象的程序设计转变;由程序代码嵌入到表示逻 辑中向代码完全从表示逻辑中分离出来的转变。顺应了数据库的发展和组件技术的发 展。传统的数据库操作类技术是基于某一种具体的数据库系统。因为在针对具体的数 据库进行操作,使用数据库自身提供的a p i ,能获得较快的存取速度和较灵活的操作, 并可以减少程序执行的时间【1 1 。随着关系数据库在各个行业、部门广泛地应用,自然 地要求不同部门的数据库系统之间能够数据共享和处理共享。 进入九十年代中后期,随着互联网技术的飞速发展和数据库系统使用的日益大众 化,人们对各种数据库系统的需求空前地高涨,这却给程序设计人员代来了一定的难 度,因为要面对不同的数据库系统进行编程,除了通用的a n s is q l 9 2 和a n s is q l 9 9 东北大学硕士学位论文等1 章绪论 标准,各家数据库都有自己的一些起特点。利用a n s is q l 9 2 和a n s is q l 9 9 标准, 为程序员的开发设计提供通用的数据库操作功能,已经成为b s 结构的程序设计发展 的必然趋势和研究热点。 目前,数据库的通用操作接口已经引起很多组件开发程序员们的高度重视,国内 外的程序员纷纷展开了对通用数据库的操作类的研究和应用开发。目前比较有代表性 的有a d o d b ,p h p l i b 的数据库操作类等,国内也有不少的程序设计人员提供出自己 的通用数据库操作类。从对数据库操作的结构上来看,有基于过程的程序设计的形式 的、也有类封装的形式。有的是使用通用的a n s is q l 9 2 或a n s is q l 9 9 的作为标准 数据库操作函数【l 】的是将数据库的操作语言完全分离的,还有的是将各种数据库的 a p i 操作函数封装在新的数据库操作类中,这些结构都代表了一定时期内程序设计的 特点。 基于过程的程序设计的结构显得有点过时。执行的效率高,但可重用性太低,不 利于程序的移植和维护。使用通用的a n s is q l 9 2 或a n s is q l 9 9 作为标准的数据库 操作函数这种方式基本能满足对数据库操作的基本要求,但对数据库的操作方式不灵 活,不支持一些数据库的a n s is q l 9 2 ,不能让数据库发挥出应有的性能,造成对数 据库管理资源的极大浪费,这种方式是目前很多通用数据库操作实现方式。它的特点 是实现起来容易,可移植性好,但是以牺牲了数据库的性能来换取的。 将数据库操作语言完全分离这种数据库操作类的特点是操作灵活,但编程复杂, 不符合面向对象开发模式( 对象的封装) ,不利于程序的移植和升级,所以使用的客 户较少【2 1 。 数据库的a p i 操作函数封装在新的数据库操作技术中利用各种数据库对应用程序 提供的a p i ,并将这些a p i 的函数封装在新的数据库操作类中,对外形成统一的数据 操作语句定义。这种实现方式最为理想,但实现起来相对困难,程序设计人员必须对 各种数据库不仅要了解,而且要相当熟悉。 1 2 2 加密数据库的国内外研究现状 近年来数据库加密与验证技术的研究逐渐兴起。国内外学者也提出了相当多的理 论来支持该技术的实现,甚至出现一些实际的产品。目前的数据库加密的研究主要集 中于加密粒度,加密算法,密钥管理和密文查询上。 东北大学硕士学位论丈等1 章绪论 从加密粒度的角度上看,有基于表、记录和字段的加密技术。其中子密钥加密技 术是以记录级粒度加密,字段级粒度解密,该方法比较灵活,但是需要生成的密钥数 量巨大,致使密钥管理十分困难【3 】。生成子密钥的字段加密技术是以字段级粒度对数 据库进行加解密处型4 1 ,而每条记录不同字段的加密密钥则由子密钥生成器生成,很 多文献中都给出了数个子密钥生成算法【5 1 。这些方法灵活性高,需要保存的密钥数量 小,是一种非常适合于数据库加密的技术。 从使用的加密算法上看可以使用传统的密码算法如对称密码算法使用传统密码算 法的优点是技术成熟,安全性得到广泛认可,但是对于密文无法直接操作,需要将其 解密后才能操作,操作完成后需要再加密存放,因此对于那些不必显示所有密文而只 需结果的操作,比如数据库内部函数a v e r a g e ,s u m 等,有比较严重的性能损失;为 此有学者提出了一种新的秘密同态的密码算法【6 】,经过具有秘密同态特性的密码算法闭 加密后的密文可以直接进行操作,但是该类型算法目前在安全性和效率上还有待进一 步完善【8 】【9 1 。 在密钥管理方面,研究了适合生成子密钥的字段加密技术的多层密钥管理体制【5 】。 国内一些学者提出了一种新的密钥管理技术,其核心思想是对密钥进行转换,但是该 方法不够灵活,对于安全级数较多的情况,处理难度较大【1 0 】。 同时,针对数据加密导致的数据特征变化,对数据处理查询可能造成影响,有学 r 者提出了密文索引的思想【1 2 】。该思想的核心是以密文索引树代替原本数据库的明文索 引树对密文数据进行索引以加快数据查询速度【1 3 】。而数据库验证方面的相关叙述则较 少,提出了基于字段的验证技术,该技术以密钥产生器产生密钥进行验证码计算【1 4 1 。 介绍了基于字段的加密验证方法,该方法对每个字段的数据生成h a s h 码并与字段的 明文一起加密存储。基于字段的验证技术的共同缺点是仅能保证字段内数据不被修改, 安全性不够高。文献提出了基于记录和属性的二维检查法,对记录( 行) 和属性( 列) 分别生成校验值,使得在发生数据错误时能够正确定位错误位置,但是由于该方法基 于记录和属性,因此不够灵活,应用时效率通常也比较低。 而在实现的产品方面,亦有相当多的产品问世,这些产品大致可分为两种类型: 一类产品是在数据库核心实现加密与验证功能,比如o r a c l e 公司在其著名的数据库软 件o r a c l e 9 i 之后引入了数据库加密的机制,并在o r a c l e 9 i 中做了进一步增耐1 5 】。 东北大学硕士学位论文等1 章绪论 另一类产品是在数据库核心之外加上了加密和解密功能层,用户可以通过这个功 能层使用带有加密与验证功能的数据库,这类产品包括n c i p h es e c u r e d b 1 6 】和n e t l i b e n c r y p t i o nf o rs q ls e r v 一1 7 1 等。 以上两种实现方式各有优缺点,在核心实现可以更彻底地实现数据库加密与验证, 且效率也较高,但开发周期长,且需要数据库厂商的资料配合;在核心外实现的方式 开发周期短,并且可以使得产品支持多种数据库,因此目前独立开发的数据库加密与 验证软件大都是在数据库核心外实现的,但是这种实现方式使得数据库加密与验证的 功能会受到一定的限制,效率一般也较低。 虽然随着数据库加密与验证技术研究的日益深入,产生了很多的数据库加密与验 证研究成果,但是仍然存在以下问题: ( 1 ) 对于数据库某些功能的影响无法消除。如o r a c l e 要求不要对索引字段加密【2 4 1 , 然而这在很多应用场合是无法接受的。 ( 2 ) 对于数据库效率的影响比较严重,这里包括访问效率和存储效率。由于目前 数据库加密一般使用传统的加密算法,比如d e s ,加解密的过程必然会导致数据库访 问效率的降低,而无法对加密数据进行直接操作也是传统加密算法的重大缺点;并且 现有各加密算法一般都有密文长度大于或等于明文长度的特点,导致存储压力加大。 这一点有待于新的可靠加密算法的出现,尤其是能够对密文数据作直接操作的加密算 法。 ( 3 ) 几乎所有已提出的加密方案都基于服务器端加解密,而在客户端加解密的方 案则甚少提及。相对于服务器端加解密的方案,在客户端加解密具有工作量分散的优 点。但是,由于需要将加解密的密钥分布到客户端,因此在客户端加解密对于密钥管 理有特殊的需求。 ( 4 ) 关于数据库验证的研究较少。而这一点恰是最为实际需要的。数据库验证可 以确保数据库内容的正确性、整个数据库的完整性,与适当的备份还原方法相配合还 能够保证数据库的可用性。假设数据库系统不足以信赖,遭到攻击者蓄意更改,则数 据库的正确性将遭受到质疑,所以采用数据库验证可在数据遭到篡改时探测到被篡改 的数据并配合复原措施将数据库还原到被篡改前的状态,以维护数据库的正确性。 东北大学硕士学位论文等1 章绪论 1 3 数据加密对数据库的影响 数据库加密范围受到限制,数据加密通过对明文进行复杂的加密操作,以达到无 法发现明文和密文之间、密文和密钥之间的内在关系,也就是说经过加密的数据经得 起来自o s 和d b m s 的攻击。另一方而,d b m s 要完成对数据库文件的管理和使用, 必须具有能够识别部分数据的条件。数据加密后会产生下面一些问题。 ( 1 ) 性能下降问题。d b m s 在完成存储密文数据的同时,还需要完成对密文数据 的管理和使用【1 8 】。数据加密后,由于其失去了本身所固有的一些特性,如有序性、相 似性、可比性这样导致对加密数据的查询,往往需要对所有加密数据先进行解密,然 后才能进行查询。而解密操作的代价往往很大,这样使得系统的性能急剧下斛2 0 1 。 ( 2 ) 索引字段加密问题。为了达到迅速查询的目的,数据库文件需要建立一些索 引。不论是字典式的单词索引、b + 树索引或h a s h 函数索引等,索引的建立和应用必 须在明文状态下进行【2 l 】,否则将失去索引的作用。有的d b m s 中可以建立簇聚索引, 这类索引也需要在明文状态下建立和维护使用 2 2 】。当今一些主流数据库产品( 例如 o r a c l e ,s q ls e r v e r 等) 均不支持对索引字段的加密【2 3 】。 ( 3 ) 加密数据库的完整性问题。实体完整性和引用完整性是为支持数据库安全性 而扩展的两个原则,这两个原则在数据库加密后仍然必须坚持【2 8 】。通常,它们由关系 系统自动支持。当数据库加密后,实体完整性不会被破坏,而引用完整性难以维护。 例如,当对关系r 的外键字段f 进行加密,在密文状态下,失去了引用完整性的约束。 ( 4 ) 加密数据的存储空间增加问题。对数据库加密,通常采用分组加密算法,这 有可能导致数据加密后的存储空间增加。例如,明文字段的长度定为8 b y t e ,加密算法 的分组长度为1 2 8 b i t ,那么加密后,密文数据的长度为1 2 8 b i t ,超过该字段规定的长 度。 ( 5 ) 加密字符串的模糊匹配问题。对加密字符串进行精确匹配时,例如,当s q l 条件语句包含“= ”时,先对s q l 中的条件值进行同样加密处理,然后与数据库中存 储的加密数据比较,如果相等,返回相应的记录。然而,对加密数据上的大量模糊查 询,例如,当s q l 条件语句包含“l i k e 时,很难进行处理。 东北大学硕士学位论文 等1 章绪论 ( 6 ) 密钥管理问题。在现代密码学中,算法的安全性都是基于密钥的安全性,而 不是基于算法的细节的安全性【2 4 】。对数据库采取加密技术来保证其安全性,但如何保 证密钥本身的安全性又是一件非常困难的事情。在数据库管理系统中,由于数据的共 享性和存储数据的持久性等原因,要求更加灵活和安全的密钥管理机制2 5 1 。 ( 7 ) d b m s 内部函数问题。数据库管理系统对各种类型数据均提供了一些内部函 数,这些函数不能直接作用于加密数据,因此s q l 语言中的内部函数将对加密数据失 去作用。 上面列出了数据库加密后存在且急需解决的一些问题,实际上,受其影响还不止 这些。随着数据库加密的进一步应用,在以后的工作中还将发现更多的问题。 1 4 题研究内容 数据库系统广泛应用于军事、政府、商业、金融等社会各个领域数据库的安全涉 及多方面的内容。本章在分析数据库安全的要求及基本特点的基础上介绍了数据库安 全的国内外研究现状和发展方向,分析了制约国内数据库安全产品发展的因素,然后 提出了本文将要开展的主要工作【2 6 】。 目前,数据库产品类型多种多样,如有新型的面向对象数据库系统,与网络技术 相结合的分布式数据库系统,以及向小型化和微型化发展的移动式数据库和嵌入式数 据库。它们的出现有力地推动了数据库技术地发展,展现出日益广阔的前景,并逐渐 成为以对象和应用驱动为主要特征的新技术浪潮的主角,但常用的基本都是关系型数 据库,其他类型的数据库系统有的是为了兼容原有的应用系统而存在,有的是为了解 决某些特殊的应用需求而存在或试验性质的产品,本文分析了几种主要的数据库系统 m y s q l ,o r a c l e l o g 和m s - s q l 2 0 0 0 访问方法并在n e t 框架下设计与实现了一种基于 安全的通用数据库接口。 1 5 论文组织结构 本文共分7 章: 第一章:绪论。介绍了数据库通用接口和数据库加密的国内外研究现状。 第二章:关键技术。详细介绍了要实现基于安全的数据库通用接1 :3 需要了解和使 用的技术。 6 一 东北大学硕士学位论文 等1 章绪论 第三章:需求分析。首先分析了系统的可行性,然后做了功能需求和非功能需求。 第四章:系统设计。从软件工程角度,设计了数据库通用接口并用加密算法实现 了对数据库的加密。 第五章:系统实现。在n e t 平台上,基于组件技术实现了数据库访问和加密的通 用接口。 第六章:系统测试。通过单元测试和集成测试证明了组件的可用性和安全性。 第七章:总结与展望。 东北大学硕士学位论文第2 章关键技术介绍 第2 章关键技术介绍 2 1 数据库接口技术 数据库系统是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存 储介质、处理对象和管理系统的集合体。目前,众多的厂商推出了多种数据库系统,它 们在性能、价格和应用范围上各有千秋。一个综合信息系统的各部门由于需求差异等原 因,往往会存在多种数据库,它们之间的互连访问成为一个棘手的问题,特别是当用户 需要从客户端访问不同服务器时。例如,微软提出的开放式数据库互连( o d b c ) 成为 目前一个强有力解决方案,并逐步成为w i n d o w s 和m a c i n t o s h 平台上的标准接口,并推 动了这方面的开放性和标准化。其他数据库研发机构和厂商也推出了自己的数据库互联 的方案,例如j d b c ,o c i 等等,下面将详细介绍它们之间的区别和联系。 2 1 1o d b c o d b c ( o p e nd a t a b a s ec o n n e c t i v i t y ,开放数据库互连) 是微软公司开放服务结构 w o s a ( w i n d o w so p e ns e r v i c e sa r c h i t e c t u r e ) 中有关数据库的一个组成部分,它建立了 一组规范,并提供了一组对数据库访问的标准a p i ( 应用程序编程接口) 。这些a p i 利 用s q l 来完成其大部分任务。o d b c 本身也提供了对s q l 语言的支持,用户可以直接 将s q l 语句送给o d b c 。 一个基于o d b c 的应用程序对数据库的操作不依赖任何d b m s ,不直接与d b m s 打交道,所有的数据库操作由对应的d b m s 的o d b c 驱动程序完成。不论是s q ls e r v e r , m y s q l 还是o r a c l e 数据库,均可用o d b ca p i 进行访问。由此可见,o d b c 的最大优 点是能以统一的方式处理所有的数据库。 应用程序要访问一个数据库,首先必须用o d b c 管理器注册一个数据源,管理器根 据数据源提供的数据库位置、数据库类型及o d b c 驱动程序等信息,建立起o d b c 与 具体数据库的联系。这样,只要应用程序将数据源名提供给o d b c ,o d b c 就能建立起 与相应数据库的连接。 在o d b c 中,o d b ca p i 不能直接访问数据库,必须通过驱动程序管理器与数据库 交换信息。驱动程序管理器负责将应用程序对o d b ca p i 的调用传递给正确的驱动程 序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。 东北大学硕士学位论文 第2 章关键技术介绍 在访问o d b c 数据源时需要o d b c 驱动程序的支持。用v i s u a lc + + 6 0 安装程序可 以安装s q ls e r v e r 、a c c e s s 、p a r a d o x 、d b a s e 、f o x p r o 、e x c e l 、o r a c l e 和m i c r o s o f tt e x t 等驱动程序。在缺省情况下,v c 6 0 只会安装s q ls e r v e r 、a c c e s s 、f o x p r o 和d b a s e 的 驱动程序。如果用户需要安装别的驱动程序,则需要重新运行v c6 0 的安装程序并选 择所需的驱动程序。 o d b c 使用层次的方法来管理数据库,在数据库通信结构的每一层,对可能出现依 赖数据库产品自身特性的地方,o d b c 都引入一个公共接口以解决潜在的不一致性,从 而很好地解决了基于数据库系统应用程序的相对独立性,这也是o d b c 一经推出就获得 巨大成功的重要原因之一。 从结构上分,o d b c 分为单束式和多束式两类。 ( 1 ) 单束式驱动程序 单束式驱动程序介于应用程序和数据库之间,像中介驱动程序一样数据提供一个统 一的数据访问方式。当用户进行数据库操作时,应用程序传递一个o d b c 函数调用给 o d b c 驱动程序管理器,由o d b ca p i 判断该调用是由它直接处理并将结果返回还是送 交驱动程序执行并将结果返回。由上可见,单束式驱动程序本身是一个数据库引擎,由 它直接可完成对数据库的操作,尽管该数据库可能位于网络的任何地方。 ( 2 ) 多束式驱动程序 多束式驱动程序负责在数据库引擎和客户应用程序之间传送命令和数据,它本身并 不执行数据处理操作而用于远程操作的网络通信协议的一个界面。前端应用程序提出对 数据库处理的请求,该请求转给o d b c 驱动程序管理器,驱动程序管理器依据请求的情 况,就地完成或传给多束驱动程序,多束式驱动程序将请求翻译为特定厂家的数据库通 信接口( 如o r a c l e 的s q l n e t ) 所能理解的形式并交于接口去处理,接口把请求经网络 传送给服务器上的数据引擎,服务器处理完后把结果发回给数据库通信接口,数据库接 口将结果传给多束式o d b c 驱动程序,再由驱动程序将结果传给应用程序。 2 1 2j d b c j d b c ( j a v ad a t ab a s ec o n n e c t i v i t y ,j a v a 数据库连接) 是一种用于执行s q l 语句的 j a v a a p i ,它可以为多种关系数据库提供统一访问,由一组用j a v a 语言编写的类和接口 组成。j d b c 为工具数据库开发人员提供了一个标准的a p i ,据此可以构建更高级的工 东北大学硕士学位论文第2 章关键技术介绍 具和接口,使数据库开发人员能够用纯j a v aa p i 编写数据库应用程序,同时,j d b c 也 是个商标名。 有了j d b c ,向各种关系数据发送s q l 语句就是件很容易的事。换言之,有了j d b c a p i ,就不必为访问s y b a s e 数据库专门写一个程序,为访问o r a c l e 数据库又专门写一个 程序,或为访问i n f o r m i x 数据库又编写另一个程序等等,程序员只需用j d b ca p i 写一 个程序就够了,它可向相应数据库发送s q l 调用。同时,将j a v a 语言和j d b c 结合起 来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何 平台上运行,这也是j a v a 语言“编写一次,处处运行的优势。 j a v a 数据库连接体系结构是用于j a v a 应用程序连接数据库的标准方法。j d b c 对 j a v a 程序员而言是a p i ,对实现与数据库连接的服务提供商而言是接口模型。作为a p i , j d b c 为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库 的连接提供了标准方法。j d b c 使用已有的s q l 标准并支持与其它数据库连接标准,如 o d b c 之间的桥接。j d b c 实现了所有这些面向标准的目标并且具有简单、严格类型定 义且高性能实现的接口。 j a v a 具有坚固、安全、易于使用、易于理解和可以从网络上自动下载等特性,是编 写数据库应用程序的杰出语言。所需要的只是j a v a 应用程序与各种不同数据库之间进行 对话的方法。而j d b c 正是作为此种用途的机制。 j d b c 扩展了j a v a 的功能。例如,用j a v a 和j d b ca p i 可以发布含有a p p l e t 的网页, 而该a p p l e t 使用的信息可能来自远程数据库企业也可以用j d b c 通过i n t r a n e t 将所有职 员连到一个或多个内部数据库中( 即使这些职员所用的计算机有w i n d o w s 、m a c i n t o s h 和u n i x 等各种不同的操作系统) 。随着越来越多的程序员开始使用j a v a 编程语言,对 从j a v a 中便捷地访问数据库的要求也在日益增加。 2 1 3o c i o r a c l e 调用接口( o r a c l ec a l li n t e r f a c e 简称o c l ) 提供了一组可对o r a c l e 数 据库进行存取的接口子例程( 函数) ,通过在第三代程序设计语言( 如c 语言) 中进行 调用可达到存取o r a c l e 数据库的目的。 在普通的情况下,用户可以通过s q l 和p l s q l 来访问数据库中的数据。o r a c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学语文议论文阅读理解强化训练
- 储能项目合作协议法律风险提示
- 2025年港口作业委托单(GF-91-0409)协议书
- 2025年家具行业劳动合同(无试用期)协议
- 2025年电力设施安全检查合同协议
- 租房协议模板与注意事项
- 农业合作项目协议文本标准版
- 低压电器电路维护方案
- 农学领域农村生态环境治理规程
- 夏日瑜伽活动策划方案
- 2025至2030全球及中国护理教育行业项目调研及市场前景预测评估报告
- 培训课件的字体版权
- 中医治未病课件版
- 【课件】工作危害分析法(JHA)专项培训课件丨
- 2025-2030年中国礼品盒行业市场现状供需分析及投资评估规划分析研究报告
- 《预防校园霸凌》课件
- 共用检验设备协议书
- 采砂作业合同协议
- 《2025年CSCO宫颈癌诊疗指南》更新要点解读
- 部编版小学六年级道德与法治上册单元测试试题含答案(全册)
- 施工单位在城市更新项目中的角色与职责
评论
0/150
提交评论