基于数据库协议代理的前置式数据库访问控制方法和系统的制作方法

文档序号:7926020阅读:226来源:国知局
专利名称:基于数据库协议代理的前置式数据库访问控制方法和系统的制作方法
技术领域
本发明涉及一种数据库访问控制方法和系统,具体是一种基于数据库协议代理方
式,对客户端和服务器完全透明,独立于数据库管理系统之外,并前置于数据库管理系统的 访问控制方法和系统。
背景技术
数据库已成为现代计算机系统的必备部件,几乎所有的行业都将业务运营的关键 数据存储在数据库之上。当前的数据库访问控制方法通过数据库管理系统(DBMS)中的访 问控制器(包括身份认证过程和访问策略控制过程)来实现。 参见图l,其是当前流行数据库管理系统结构示意图。侦听器110、访问控制器 120和执行器130作为数据库管理系统密不可分的模块,每一次客户端的正常或异常访问, 都会引起侦听器110、访问控制器120和执行器130的动作,消耗系统资源,并且不可预期。 在极端的情况下,恶意攻击访问控制认证器120,会导致整个数据库服务器宕机。 一些特殊 的访问控制要求,也只能用访问控制器120特定的处理方式来完成。例如,需要限制某个 用户只能在特定的时间窗口 (例如工作目的早上9:00到下午17:00)通过特定的IP访问 数据库,需要编写特定的程序来实现。当前主流商业数据库管理系统的密码处理算法基本 被公开,再加上用户身份认证丢失、保管不善、使用随意等状况普遍存在,如果要求在访问 控制器120上实现基于动态密码(例如60秒自动变更密码的令牌方式)的访问控制也是 目前数据库管理系统所不能轻易胜任的一个复杂过程。在访问控制器120存在漏洞时,还 会严重威胁数据库安全。 一项由商业数据库厂商委托第三方的调查显示,利用访问控制器 120实现最基本的访问监视功能也实际上被用户放弃,缘由就是不能接受不可预期的性能 开销。不难推断,当前不安全也不实用的数据库访问控制方法是一系列数据泄密、数据篡改 以及数据捣毁事件根源。

发明内容
本发明的目的是在不改造现有客户端和数据库结构的前提下提供一种全新的数
据库访问控制方法和系统,以解决当前数据库访问控制的缺陷。本发明提供了一种基于数
据库协议代理的前置式数据库访问控制方法和系统。其技术方案包括 —种基于数据库协议代理的前置式数据库访问控制方法,包括 a、数据库协议代理侦听网络上的数据库协议包,通过协议解析,进行身份认证以
及访问控制策略判定,若判定为真,则执行步骤b,若判定为假,则执行步骤c ; b、数据库协议代理依据数据库策略动作对数据库协议包重组后发送给数据库,由
数据库进行后续处理并给数据库协议代理返回结果信息,再由数据库协议代理依据客户端
策略动作对数据库协议包重组后返回客户端,执行步骤a或结束; c、将错误信息封装成数据库协议包返回客户端,执行步骤a或结束。 步骤a所述协议解析是指识别出数据库操作符和操作串,数据库操作符包括数据库连接操作符和数据库访问操作符。数据库连接操作符的操作串是一个五元组(数据 库名称,IP地址,TCP端口,用户名,密码)。该操作串被用于身份认证以及访问策略控制。 数据库访问操作符的操作串是一个二元组(SQL或其扩展语句,绑定参数向量)。该操作串 被用于访问策略控制。 步骤b所述数据库策略动作是指如何修改发送给数据库的数据库协议包的动作 定义,进一步包括数据库连接操作串和数据库访问操作串的修改要求。 步骤b所述客户端策略动作是指如何修改发送给客户端的数据库协议包的动作 定义,进一步包括返回码和返回串的修改要求。 步骤b、c所述执行步骤a或结束,由访问控制动作来定义,对于执行步骤a意味着 客户端与数据库协议代理、数据库协议代理与数据库仍然保持连接,而对于结束,意味着客 户端与数据库协议代理、数据库协议代理与客户端的连接关闭。所述访问控制动作,包括继 续执行、停止执行、修改后执行、放弃执行。其中继续执行、修改后执行和放弃执行会导致步 骤a,停止执行会导致结束。 所述数据库进行后续处理,进一步包括侦听器110、控制器120和执行器130的 处理。从而认定前置式数据库访问控制方法实际上是一种双重数据库访问方法。在实际应 用时,访问控制可侧重于加载在数据库协议代理之上,避免不必要的数据库后续处理开销。
进一步,可控制数据库协议代理的起停状态实现客户端的可用控制,而无需起停 数据库。 进一步,数据库可以同时侦听来自客户端和数据库协议代理的请求,此为混合模 式的数据库访问控制方法。在实际应用时,可将信任客户端直接接入数据库,而将不信任客 户端经由数据库协议代理再接入数据库。 进一步,数据库协议代理可以同时侦听来自客户端和另一个数据库协议代理的请 求,此为多级模式的数据库访问控制方法。在实际应用时,可将复杂的访问控制分散在多个 数据库协议代理上,从而形成访问控制网络。 —种基于数据库协议代理的前置式数据库访问控制系统,包括侦听器、访问控制 器和转发器。其中 所述侦听器,用于侦听特定TCP端口的数据库协议包,并将合法的数据库协议包 发送给访问控制器; 所述访问控制器,用于解析数据库协议包的数据库连接操作串和数据库访问操作 串,并依据预先定义的认证要求和策略控制要求进行判定; 所述转发器,用于依据数据库策略动作对数据库协议包重组后发送给数据库。
所述转发器,进一步用于依据客户端策略动作对数据库协议包重组后返回客户
丄山顺。 所述转发器,进一步用于将错误信息封装成数据库协议包返回客户端。 进一步,系统与客户端、数据库工作在同一数据库协议层,从而使得客户端与系统
的通信,以及系统与数据库的通信构成会话接续。 本发明的关键是引入了基于数据库协议的代理机制,从而使客户端、数据库协议 代理和数据库工作在同一数据库协议层。数据库协议代理的前置判断如果为真,则继续递 交到数据库,如果为假,则直接返回。进一步,可限定数据库协议代理的起停状态实现客户端可用控制。进一步,基于数据库协议的代理机制支持混合模式和多级模式的数据库访问 控制。因此,本发明实现了一种高效、安全、透明、隔离、专门、灵活、实时、可视的数据库安全 控制方法。高效是指尽可能少地影响现有数据库性能;安全是指能提供额外的数据库安全 能力;透明是指不影响现有应用的改造;隔离是将数据库连接操作串的五元组屏蔽,避免 恶意攻击,不将额外负载引入数据库服务器,代理实现的安全控制机制先于数据库管理系 统本身的安全控制机制;专门是仅收集特定数据库访问,不涉及其他信息的采集;灵活是 指能够方便地通过加载策略实现多样的安全控制方法;实时是指零等待地获取所有数据库 访问语句。可视是能直观地监视及分析任意时间点的数据库访问。从而有效地控制数据库 访问安全,进而规避数据泄露、数据篡改、恶意删除、非法访问等风险事件发生。


图1是当前流行数据库管理系统结构示意图; 图2是根据本发明一实施例实现的基于数据库协议代理的前置式数据库访问控 制方法流程示意图; 图3是根据本发明一实施例实现的混合模式的数据库访问控制方法交互示意图;
图4是根据本发明一实施例实现的多级模式的数据库访问控制方法交互示意图;
图5是根据本发明一实施例实现的基于数据库协议代理的前置式数据库访问控 制系统结构示意图。
具体实施例方式
本发明的思路是引入基于数据库协议的代理,使客户端、数据库协议代理和数据 库处于同一数据库协议层次,不改造现有客户端和数据库结构,实现前置式地实施数据库 访问控制,进而控制并审计整个数据库通道。 下面结合附图及具体实施例,对本发明作进一步详细说明。 图2是根据本发明一实施例实现的基于数据库协议代理的前置式数据库访问控 制方法流程示意图。 步骤210,数据库协议代理侦听网络上的Oracle协议(TNS)包,通过协议解析,进 行身份认证和访问控制策略判定,若判定为真,则执行步骤220,若判定为假,则执行步骤
230 ; 步骤220,数据库协议代理依据数据库策略动作对TNS包重组后发送给Oracle数
据库,由数据库进行后续处理并给数据库协议代理返回结果信息,再由数据库协议代理依
据客户端策略动作对TNS包重组后返回客户端,执行步骤a或结束; 步骤230,将错误信息封装成TNS包返回客户端,执行步骤a或结束。 图3是根据本发明一实施例实现的混合模式的数据库访问控制方法交互示意图。 客户端310通过数据库协议代理330接入Oracle数据库340 ; 客户端320直接接入Oracle数据库340。 图4是根据本发明一实施例实现的混合模式的数据库访问控制方法交互示意图。
客户端401通过数据库协议代理405,再通过数据库协议代理408接入Oracle数 据库41Q ;
5
客户端402通过数据库协议代理406,再通过数据库协议代理408接入Oracle数 据库410 ; 客户端403通过数据库协议代理406,再通过数据库协议代理408接入Oracle数 据库410 ; 客户端404通过数据库协议代理407,再通过数据库协议代理409接入Oracle数 据库410。 本发明还公开了一种基于数据库协议代理的前置式数据库访问控制系统,包括 侦听器501、访问控制器502和转发器503。其中 侦听器501,用于侦听特定TCP端口 (例如1600)的TNS包,并将合法的TNS包发 送给访问控制器502 ; 访问控制器502,用于解析TNS包的数据库连接操作串和数据库访问操作串,并依 据预先定义的认证要求和策略控制要求进行判定; 转发器503,用于依据数据库策略动作对TNS包重组后发送给Oracle数据库。
转发器503,进一步用于依据客户端策略动作对TNS包重组后返回客户端。
再有,转发器503,还用于将错误信息封装成TNS包返回客户端。
进一步,系统与客户端、数据库工作在同一数据库协议层,从而使得客户端与系统 的通信,以及系统与数据库的通信构成会话接续。 对于客户端而言,本系统提供了类似数据库的五元组,因此对客户端应用完全透 明,客户端不需要进行特别的代理配置,只是以一个五元组替换另一个五元组。同时,因为 本系统前置于数据库,也屏蔽了真实的数据库五元组,隔离了可能的恶意攻击,也规避了由 此产生的性能开销。由于在数据库之外的五元组存在,密码算法可以有更多选择,可配置实 现基于令牌的动态密码。 本发明方法及系统不限于Oracle。可以应用于任何C/S (包括B/S)结构的数据库 管理系统。如Sybase、 SQLServer、 DB2、 MySQL等。 以上所述仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发 明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
权利要求
一种基于数据库协议代理的数据库访问控制方法,其特征在于,包括a、数据库协议代理侦听网络上的数据库协议包,通过协议解析,进行身份认证和访问控制策略判断,若判断为真,则执行步骤b,若判断为假,则执行步骤c;b、数据库协议代理依据数据库策略动作对数据库协议包重组后发送给数据库,由数据库进行后续处理并给数据库协议代理返回结果信息,再由数据库协议代理依据客户端策略动作对数据库协议包重组后返回客户端,执行步骤a或结束;c、将错误信息封装成数据库协议包返回客户端,执行步骤a或结束。
2. 根据权利要求l所述的方法,其特征在于,步骤a所述判断是根据数据库协议包中的 标识进行判定的。进一步,该识别标识包括数据库连接操作串和数据库访问操作串。
3. 根据权利要求1所述的方法,其特征在于,步骤b所述数据库协议包重组包括对数据 库协议包中的数据库连接操作串和数据库访问操作串的变更,以及对数据库协议包中的状 态码和状态串的变更。
4. 根据权利要求1所述的方法,其特征在于,步骤b、 c所述执行步骤a或结束由访问 控制动作来定义,对于执行步骤a意味着客户端与数据库协议代理、数据库协议代理与数 据库仍然保持连接,而对于结束,意味着客户端与数据库协议代理、数据库协议代理与客户 端的连接关闭。所述访问控制动作,包括继续执行、停止执行、修改后执行、放弃执行。其中 继续执行、修改后执行和放弃执行会导致步骤a,停止执行会导致结束。
5. 根据权利要求1所述的方法,其特征在于,数据库协议代理前置于数据库,在数据库 访问到达数据库之前提前独立实施访问控制验证,并可以阻断客户端和数据库的通道,从 而通过控制数据库协议代理实现客户端可用控制。
6. 根据权利要求1所述的方法,其特征在于,数据库可以同时侦听来自客户端和数据 库协议代理的请求,也就是支持混合模式的数据库访问控制。
7. 根据权利要求1所述的方法,其特征在于,数据库协议代理可以同时侦听来自客户 端和另一个数据库协议代理的请求,也就是支持多级模式的数据库访问控制。
8. —种基于数据库协议代理的数据库访问控制系统,其特征在于,包括侦听器、访问 控制器和转发器。其中所述侦听器,用于侦听特定TCP端口的数据库协议包,并将合法的数据库协议包发送 给访问控制器;所述访问控制器,用于解析数据库协议包的数据库连接操作串和数据库访问操作串, 并依据预先定义的认证要求和策略控制要求进行判定;所述转发器,用于依据数据库策略动作对数据库协议包重组后发送给数据库。
9. 根据权利要求8所述的系统,其特征在于,所述的转发器,进一步用于依据客户端策 略动作对数据库协议包重组后返回客户端。
10. 根据权利要求8所述系统,其特征在于,所述转发器,进一步用于将错误信息封装 成数据库协议包返回客户端。
11. 根据权利要求8所述的系统,其特征在于,系统与客户端、数据库工作在同一数据 库协议层,从而使得客户端与系统的通信,以及系统与数据库的通信构成会话接续。
全文摘要
本发明公开了一种数据库访问控制方法,关键是,引入了基于数据库协议的代理机制,使客户端、数据库协议代理和数据库工作在同一数据库协议层,从而在不改造客户端和数据库结构的前提下,实现前置式实施数据库访问控制首先由数据库协议代理进行身份认证以及访问策略判断,如果为真,则继续转发给数据库作后续正常处理,如果为假,则返回客户端或结束。本发明还同时公开了一个基于数据库协议代理的前置式数据库访问控制系统。应用本发明,一方面可以避免不必要的后续数据库处理造成的资源开销和可能安全漏洞,进而控制并审计整个数据库通道,另一方面可以灵活、安全、实时、可视地实施复杂的访问控制要求。
文档编号H04L29/06GK101739422SQ200810217170
公开日2010年6月16日 申请日期2008年11月5日 优先权日2008年11月5日
发明者方正江, 罗爱平 申请人:深圳市守望网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1