CN101727475B - 一种获取数据库访问过程的方法、装置及系统 - Google Patents

一种获取数据库访问过程的方法、装置及系统 Download PDF

Info

Publication number
CN101727475B
CN101727475B CN 200910179081 CN200910179081A CN101727475B CN 101727475 B CN101727475 B CN 101727475B CN 200910179081 CN200910179081 CN 200910179081 CN 200910179081 A CN200910179081 A CN 200910179081A CN 101727475 B CN101727475 B CN 101727475B
Authority
CN
China
Prior art keywords
database
recalls information
statement
audit
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200910179081
Other languages
English (en)
Other versions
CN101727475A (zh
Inventor
施桂琳
吴强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Qi Polytron Technologies Inc
Original Assignee
Qizhi (shanghai) Information Science & Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qizhi (shanghai) Information Science & Technology Co Ltd filed Critical Qizhi (shanghai) Information Science & Technology Co Ltd
Priority to CN 200910179081 priority Critical patent/CN101727475B/zh
Publication of CN101727475A publication Critical patent/CN101727475A/zh
Application granted granted Critical
Publication of CN101727475B publication Critical patent/CN101727475B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种获取数据库访问过程的方法、装置及系统。所述方法包括:截获应用程序APP对数据库客户端库DCL的调用信息;对所述截获到的调用信息进行处理;将与所述调用信息对应的结果返回给应用程序。本发明在程序调用过程实现数据库访问过程的获取,从而实现数据库审计和权限的控制。

Description

一种获取数据库访问过程的方法、装置及系统
技术领域
本发明涉及数据库技术领域,尤其涉及一种获取数据库访问过程的方法、装置及系统。
背景技术
数据库技术是当今信息技术的一个重要组成部分,对核心数据库的安全保护也是一个重要的课题。获取各种客户端对数据库的访问过程是数据库操作审计的基础技术。
如图1所示,为现有数据库应用系统的部署结构示意图,图1中的客户端应用程序、客户端库、及数据库服务器是实体,程序调用和网络通讯是过程。其中,应用程序是使用数据库服务的程序,例如ERP、MIS等系统。客户端库是应用程序与数据库服务器之间的通讯桥梁,其提供一些诸如连接数据库、准备语句、执行语句、获取数据等调用,应用程序调用这些库函数来实现对数据库的访问。程序调用是应用程序和客户端库之间的交互过程,具体包括调用、回调、参数和结果传递、共享内存结构等方式。网络通讯是客户端库和数据库服务器之间的通讯过程。数据库服务器提供应用程序要访问的数据库。其中,应用程序、程序调用、客户端库是在同一台计算机上的,统称为客户端,数据库服务器一般在独立的计算机上,之间通过网络连接。当然服务器也可以和客户端在同一台计算机上,之间通过虚拟网络连接。
数据库访问过程就是指应用程序访问数据库的过程。现有技术对于数据库访问过程的获取通常有如下几种方式:
现有技术之一是使用数据库自带的功能,如Oracle的AUDIT命令,在图1中的数据库服务器上实现数据库访问过程的获取。该方式需要数据库服务器支持,并且占用数据库服务器的计算资源。此外,审计记录一般也记录在数据库内,需要进一步的导出和管理。因此,该方式性能开销大,增加数据库服务器的压力。
现有技术之二是以旁路或代理转发机制获取协议数据包,从中解析访问内容。即在图1中的网络通讯过程中,加入抓包设备来捕获网络通讯内容,然后解析协议还原客户端访问过程。该方式涉及厂商的知识产权,不容易获取,即使能取得,授权费用也比较高。另外,数据库通讯协议非常复杂,即使拿到了协议文本和授权,高效的完整实现也非常困难。随着版本的升级,协议也在不断变化,需要投入很大的力量持续分析和实现。此外,该方式属于事后机制,无法对危险操作进行拦截。
现有技术之三是分析数据库的事务日志,获取访问信息。其也是一种基于数据库服务器的机制。现代数据库系统需要提供事务一致性,通常都会对所有的修改操作做日志和回滚文件。该方式就是利用这些文件的信息来获取数据库的访问过程。然而,该方式同样会涉及厂商的知识产权,不容易获取,即使能取得,授权费用也比较高。另外,该方式中由于在事务日志中通常不包含只读查询和结果数据集,因此不能对敏感数据查询做审计。此外,该方式同样属于事后机制,无法对危险操作进行拦截。
在实现本发明的过程中,发明人经过研究发现:如图1所示的部署结构,应用程序要对数据库进行访问一定会经过这些实体和过程,也就可以在这些位置来做捕获。然而,上述现有技术都是在网络通讯或数据库服务器这两个位置进行数据库访问过程的获取的,并且都存在各自的优缺点。
发明内容
本发明实施例提供一种获取数据库访问过程的方法、装置及系统,在程序调用过程实现数据库访问过程的获取,从而实现数据库审计和权限的控制。
本发明实施例提供以下技术方案:
一种获取数据库访问过程的方法,包括:
截获应用程序APP对数据库客户端库DCL的调用信息;
对所述截获到的调用信息进行处理;
将与所述调用信息对应的结果返回给应用程序。
优选的,所述截获应用程序APP对数据库客户端库DCL的调用信息的方式包括下述方式中的任意一种:
修改数据库客户端库DCL的名字和/或位置,将审计代理库APL替换为数据库客户端库DCL,使应用程序APP主动加载审计代理库APL,审计代理库APL再加载数据库客户端库DCL;或者
修改数据库客户端库DCL以及相关函数的入口,使应用程序APP指向审计代理库APL;或者
修改应用程序APP,将对数据库客户端库DCL函数的调用重定向到审计代理库APL;或者
在应用程序APP运行时,动态注入审计代理库APL;
其中,所述审计代理库APL为数据库访问代理库。
优选的,所述对所述截获到的调用信息进行处理包括:
对所述截获到的调用信息进行分析、和/或记录、和/或修改、和/或阻断。
进一步的,若所述调用信息属于数据库连接调用,则所述对所述截获到的调用信息进行处理包括:
记录数据库连接参数,所述连接参数包括对应的主机、用户名、数据库名;和/或
所述数据库连接包括建立连接和关闭连接,建立连接时创建相关描述对象,关闭连接时释放相关描述对象;和/或
记录当前客户端的名称、命令行、可执行文件位置信息。
进一步的,若所述调用信息属于数据库环境设置调用,则所述对所述截获到的调用信息进行处理包括:
如果环境设置、命令的执行和表示方式有关,则在设置的时候进行分析和记录,以供记录或展现具体操作时参考;
如果在数据库连接描述对象中有相应的属性,则在修改时同步改变所述属性;
其中,所述数据库环境设置项包括:字符集、字符编码、事务提交方式。
进一步的,若所述调用信息属于准备数据库操作指令和参数的调用,则所述对所述截获到的调用信息进行处理包括:
创建语句对象时建立语句描述,释放语句对象时销毁语句描述;
其中,所述准备数据库操作指令和参数包括:准备语句、设置选项、绑定参数。
进一步的,若所述调用信息属于执行数据库操作指令的调用,则所述调用信息包括语句的引用;所述对所述截获到的调用信息进行处理包括:调用前处理、调用时处理、及调用后处理;其中:
所述对所述截获到的调用信息进行处理的过程作为本次会话;
所述调用前处理包括:检查所述语句是否符合权限审计要求,对于不符合要求的拒绝执行;和/或,将执行语句的内容、选项和参数发送到审计服务器进行记录,记录执行状态为“未执行”;
所述调用后处理包括:记录语句的执行结果,数据修改的程度;如果语句执行失败,更新事务状态为“执行失败”;否则如果语句的类型是DML,则更新事务状态为“已执行”或“已提交”;如果语句的类型是DDL或DCL,则更新事务状态为“已提交”,并把该次会话内事务状态为“已执行”的语句全部修改为“已提交”。
进一步的,若所述调用信息属于查询结果数据的调用,则所述对所述截获到的调用信息进行处理包括:
有选择的记录查询的结果数据,所述结果数据包括转换后的结果数据。
进一步的,若所述调用信息属于事务控制的调用,则所述对所述截获到的调用信息进行处理包括:
记录各种语句的事务状态,执行时按照连接当时的事务设定发送,如果不是自动提交的,则设置为“已执行”;
如果执行ROLLBACK语句,则将审计服务器的记录中连接“已执行”状态的语句执行全部修改为“已回滚”事务状态;
如果执行COMMIT语句,则将审计服务器的记录中连接“已执行”状态的语句执行全部修改为“已提交”事务状态。
进一步的,所述将与所述调用信息对应的结果返回给应用程序包括:
对所述与所述调用信息对应的结果进行分析、和/或记录、和/或修改。
一种获取数据库访问过程的装置,包括:
截获单元,用于截获应用程序对数据库客户端库的调用信息;
处理单元,用于对所述截获单元截获到的调用信息进行处理;
反馈单元,用于将与所述调用信息对应的结果返回给应用程序。
其中,所述截获单元具体用于修改数据库客户端库DCL的名字和/或位置,将审计代理库APL替换为数据库客户端库DCL,使应用程序APP主动加载审计代理库APL,审计代理库APL再加载数据库客户端库DCL;或者
用于修改数据库客户端库DCL以及相关函数的入口,使应用程序APP指向审计代理库APL;或者
用于修改应用程序APP,将对数据库客户端库DCL函数的调用重定向到审计代理库APL;或者
用于在应用程序APP运行时,动态注入审计代理库APL;
其中,所述审计代理库APL为数据库访问代理库。
优选的,所述处理单元具体用于对所述截获到的调用信息进行分析、和/或记录、和/或修改、和/或阻断。
优选的,所述反馈单元具体用于对所述与所述调用信息对应的结果进行分析、和/或记录、和/或修改。
优选的,所述装置设置在客户端内,介于应用程序与数据库客户端库之间。
一种获取数据库访问过程的系统,包括所述的获取数据库访问过程的装置。
本发明实施例提供一种获取数据库访问过程的方法、装置及系统,在程序调用过程实现数据库访问过程的获取,从而实现数据库审计和权限的控制。本发明可以支持所有客户端,在客户端和第三方审计平台上执行,无需增加数据库服务器的负担。另外,本发明不仅可以获取访问过程并且记录完整准确的信息,还可以对访问和返回的数据进行修改,以及对危险操作进行拦截。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有数据库应用系统的部署结构示意图;
图2是本发明实施例提供的获取数据库访问过程的方法概括流程图;
图3是本发明实施例提供的获取数据库访问过程的方法中各种调用方式的截取过程示意图;
图4是本发明实施例提供的获取数据库访问过程的方法中操作结果记录结构示意图;
图5是本发明实施例提供的获取数据库访问过程的装置结构示意图;
图6是本发明实施例提供的获取数据库访问过程的装置应用示意图。
具体实施方式
本发明实施例提供一种获取数据库访问过程的方法、装置及系统,在程序调用过程实现数据库访问过程的获取,从而实现数据库审计和权限的控制。为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明进一步详细说明。
如图2所示,为本发明实施例提供的获取数据库访问过程的方法概括流程图。所述方法包括:
步骤201、截获应用程序(APP)对数据库客户端库(DCL,简称客户端库)的调用信息;
步骤202、对所述截获到的调用信息进行处理;
步骤203、将与所述调用信息对应的结果返回给应用程序。
由于如背景技术介绍的,应用程序是调用数据库厂商提供的客户端库的,而不是调用本发明所述的审计代理库,因此需要本发明实施例提供的方法来让应用程序以为是调用客户端库而实则调用审计代理库。
具体而言,所述步骤201中,截获应用程序(APP)对客户端库(DCL)的调用信息的方式包括下述方式中的任意一种:
修改客户端库(DCL)的名字和/或位置,将审计代理库(APL)替换为客户端库(DCL),使应用程序(APP)主动加载审计代理库(APL),审计代理库(APL)再加载客户端库(DCL);或者
修改客户端库(DCL)以及相关函数的入口,使应用程序(APP)指向审计代理库(APL);或者
修改应用程序(APP),将对客户端库(DCL)函数的调用重定向到审计代理库(APL);或者
在应用程序(APP)运行时,动态注入审计代理库(APL),也就是说,在运行时注入客户端进程,动态修改客户端的数据库调用代码。
所述步骤202中,对所述截获到的调用信息进行处理包括:对所述截获到的调用信息进行分析、和/或记录、和/或修改、和/或阻断。具体而言,按照所述调用信息所述的类型采取不同的处理方式。而所述截获到的调用信息,其与客户端库中各种数据库的访问接口相对应,通常包括:连接到数据库、数据库环境参数设置、准备数据库操作指令和参数、执行数据块操作指令、获取指令的执行结果以及查询数据、事务控制等。需要说明的是,这些调用一般都使用内存中的结构来保存信息,以指针作为参数。客户端库会提供内存结构的说明,或是访问和修改内存对象的调用。以句柄或内存指针的形式实现各种对象相互之间的引用。
另外,需要说明的是,应用程序和客户端库之间操作各种对象,其通常包括以下类型:数据库连接,如描述客户端到数据库服务器的一个连接;语句;语句参数;结果查询,如游标。审计代理库建立对象池来识别和跟踪这些对象,在函数被调用的时候解析其实际对应。这些对象可以以指针或引用来标识。可用不同的对象池来跟踪这些对象,由于单元进程中内存地址的唯一性和确定性,也可用一个单独的以内存地址(如指针)为索引的对象池来跟踪。
下面,针对上述已经列举的调用信息的各种类型,具体说明对所述截获到的调用信息进行处理的内容。
若所述调用信息属于数据库连接调用,则所述对所述截获到的调用信息进行处理包括:记录数据库连接参数,所述连接参数包括对应的主机、用户名、数据库名;和/或所述数据库连接包括建立连接和关闭连接,建立连接时创建相关描述对象,关闭连接时释放相关描述对象;和/或记录当前客户端的名称、命令行、可执行文件位置信息。
若所述调用信息属于数据库环境设置调用,则所述对所述截获到的调用信息进行处理包括:如果环境设置、命令的执行和表示方式有关,则在设置的时候进行分析和记录,以供记录或展现具体操作时参考;如果在数据库连接描述对象中有相应的属性,则在修改时同步改变所述属性;其中,所述数据库环境设置项包括:字符集、字符编码、事务提交方式。
若所述调用信息属于准备数据库操作指令和参数的调用,则所述对所述截获到的调用信息进行处理包括:创建语句对象时建立语句描述,释放语句对象时销毁语句描述;其中,所述准备数据库操作指令和参数包括:准备语句、设置选项、绑定参数。
若所述调用信息属于执行数据库操作指令的调用,则所述调用信息包括语句的引用,所述对所述截获到的调用信息进行处理包括:调用前处理、调用时处理、及调用后处理;其中:所述调用前处理包括:检查所述语句是否符合权限审计要求,对于不符合要求的拒绝执行;和/或,将执行语句的内容、选项和参数发送到审计服务器进行记录,记录执行状态为“未执行”;所述调用时处理包括:如果语句的类型是DDL,则将该次会话内事务状态为“已执行”的语句全部修改为“已提交”;所述调用后处理包括:记录语句的执行结果,数据修改的程度;如果语句执行失败,更新事务状态为“执行失败”;否则如果语句的类型是DML,则更新事务状态为“已执行”或“已提交”;如果语句的类型是DDL或DCL,则更新事务状态为“已提交”,并把该次会话内事务状态为“已执行”的语句全部修改为“已提交”。
若所述调用信息属于查询结果数据的调用,则所述对所述截获到的调用信息进行处理包括:有选择的记录查询的结果数据,所述结果数据包括转换后的结果数据。
若所述调用信息属于事务控制的调用,则所述对所述截获到的调用信息进行处理包括:记录各种语句的事务状态,执行时按照连接当时的事务设定发送,如果不是自动提交的,则设置为“已执行”;如果执行ROLLBACK语句,则将审计服务器的记录中连接“已执行”状态的语句执行全部修改为“已回滚”事务状态;如果执行COMMIT语句,则将审计服务器的记录中连接“已执行”状态的语句执行全部修改为“已提交”事务状态。
需要说明的是,上述所述的记录中,有些内容是可以不记录的,其中应用进程和数据库连接是必须要记录的,而命令执行、命令参数、数据列定义、以及数据行内容等是可以不记录的。
另外,对于语句的权限控制可以有很多方法,例如截获语句执行调用;或对语句内容及其选项和参数进行语法分析,得到涉及的数据库对象,如表、视图等,或得到对数据库对象执行的操作,如增、删、改、查等,或得到访问数据库对象的哪些具体属性,如表和视图的哪些列等;或比对权限控制规则,看是否允许当前用户访问这些数据对象,如果不允许,就不用调用客户端库执行函数,而直接返回相应的错误代码。如果没有合适的错误代码,或无法所实现错误报告的修改,也可以返回正确执行,但实际不做任何工作,或查不到相关记录等。
通常,应用程序调用客户端库的方式可以分为三种,即同步调用、异步调用、及回调。其中,同步调用是客户端库函数等数据库完成处理后再返回,处理结果一般已经知道,此类调用的截获是最简单的,完成处理后再返回即可。异步调用是客户端库接收请求后即返回,应用程序可继续执行,等数据库处理完成后,应用程序调用查询函数获取执行结果。回调是应用程序调用客户端库时提供一个回调函数,客户端库接收请求;等数据库处理完成后,客户端库调用应用程序提供的回调函数把结果或数据传递给应用程序。具体的,回调分为同步回调和异步回调两种,同步回调的客户端库函数等应用程序回调函数结束运行返回后一次返回;异步回调在接收完调用请求后即返回,客户端库在完成数据库处理后,在之后的查询调用或事件处理线程上调用应用程序回调函数。
下面结合上述调用模式的执行过程,重点说明审计代理库中执行的工作:调用前处理,即发送客户端请求给客户端库函数前的处理工作,包括合规性检查、调用记录等。调用后处理,即客户端库返回结果给应用程序前的处理工作,包括记录本次调用的结果等。异步调用注册,异步调用一般回返回一个引用,供结果查询调用使用。这里要记录所述引用,并和相关的调用对象,如数据库连接、语句等关联。异步调用还原,即通过异步调用引用还原出关联的对象等,使调用后处理能知道相关调用的上下文。替换回调函数,即把应用程序传递给客户端库的回调函数替换为审计代理库的回调函数,然后再调用客户端库。调用原回调函数,即客户端库会调用注册的回调函数,也就是审计代理库的回调函数,该函数完成处理后,再调用应用程序的回调函数完成数据库调用返回。需要说明的是,关于调用前处理和调用后处理,很多处理工作既可以在调用前执行,也可以在调用后执行,对于这样的也可以统称为调用时处理。如图3所示,为上述各种调用方式的截取过程示意图。
所述步骤203中,将与所述调用信息对应的结果返回给应用程序包括:对所述与所述调用信息对应的结果进行分析、和/或记录、和/或修改。具体的,可以按照如图4所示的结构图记录操作结果,包括应用程序、数据库连接、命令执行、命令参数、及查询结果数据。其中,命令执行含有以下属性:语句文本;事务状态,例如未执行、已执行(未提交)、已提交、已回滚、不确定等;执行结果,例如成功与否,影响了多少数据对象等,但不包含查询结果。
如图5所示,为本发明实施例提供的获取数据库访问过程的装置结构示意图。该装置包括:截获单元510、处理单元520、反馈单元530;其中:
所述截获单元510,用于截获应用程序对数据库客户端库的调用信息;
所述处理单元520,用于对所述截获单元510截获到的调用信息进行处理;
所述反馈单元530,用于将与所述调用信息对应的结果返回给应用程序。
其中,所述截获单元510具体用于修改数据库客户端库DCL的名字和/或位置,将审计代理库APL替换为数据库客户端库DCL,使应用程序APP主动加载审计代理库APL,审计代理库APL再加载数据库客户端库DCL;或者用于修改数据库客户端库DCL以及相关函数的入口,使应用程序APP指向审计代理库APL;或者用于修改应用程序APP,将对数据库客户端库DCL函数的调用重定向到审计代理库APL;或者用于在应用程序APP运行时,动态注入审计代理库APL。
所述处理单元520具体用于对所述截获到的调用信息进行分析、和/或记录、和/或修改、和/或阻断。
所述反馈单元530具体用于对所述与所述调用信息对应的结果进行分析、和/或记录、和/或修改。
需要说明的是,上述方法各实施例的说明也同样适用于装置各实施例。
在实际应用时,所述装置设置在客户端内,介于应用程序与数据库客户端库之间。如图6所示,为本发明实施例提供的获取数据库访问过程的装置应用示意图。其中,图6中的审计代理库即为所述的获取数据库访问过程的装置,其结构如上所述,此处不再赘述。所述的审计代理库实际上是为实现数据库审计而做的数据库访问代理库,其会把数据库的访问过程发送到审计服务器上保存,还可以根据审计配置修改或拒绝某些数据库访问。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
综上所述,本发明提供了一种获取数据库访问过程的的方法、装置及系统,在程序调用过程实现数据库访问过程的获取,从而实现数据库审计和权限的控制。本发明可以支持所有客户端,在客户端和第三方审计平台上执行,无需增加数据库服务器的负担。另外,本发明不仅可以获取访问过程并且记录完整准确的信息,还可以对访问和返回的数据进行修改,以及对危险操作进行拦截。此外,本发明实现的接口比较简单和稳定,随着版本的变化,需要修改和重新实现的部分很少;并且只依赖数据库厂商提供的公开信息,不涉及商业机密,知识产权风险低。
以上对本发明所提供的获取数据库访问过程的的方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方案;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种获取数据库访问过程的方法,其特征在于,包括:
截获应用程序APP对数据库客户端库DCL的调用信息;
对所述截获到的调用信息进行处理;
将与所述调用信息对应的结果返回给应用程序;
其中:
所述截获应用程序APP对数据库客户端库DCL的调用信息的方式包括下述方式中的任意一种:
修改数据库客户端库DCL的名字和/或位置,将审计代理库APL替换为数据库客户端库DCL,使应用程序APP主动加载审计代理库APL,审计代理库APL再加载数据库客户端库DCL;或者
修改数据库客户端库DCL以及相关函数的入口,使应用程序APP指向审计代理库APL;或者
修改应用程序APP,将对数据库客户端库DCL函数的调用重定向到审计代理库APL;或者
在应用程序APP运行时,动态注入审计代理库APL;
其中,所述审计代理库APL为数据库访问代理库。
2.根据权利要求1所述的获取数据库访问过程的方法,其特征在于,所述对所述截获到的调用信息进行处理包括:
对所述截获到的调用信息进行分析、和/或记录、和/或修改、和/或阻断。
3.根据权利要求2所述的获取数据库访问过程的方法,其特征在于,若所述调用信息属于数据库连接调用,则所述对所述截获到的调用信息进行处理包括:
记录数据库连接参数,所述连接参数包括对应的主机、用户名、数据库名;和/或
所述数据库连接包括建立连接和关闭连接,建立连接时创建相关描述对象,关闭连接时释放相关描述对象;和/或
记录当前客户端的名称、命令行、可执行文件位置信息。
4.根据权利要求2所述的获取数据库访问过程的方法,其特征在于,若所述调用信息属于数据库环境设置调用,则所述对所述截获到的调用信息进行处理包括:
如果环境设置、命令的执行和表示方式有关,则在设置的时候进行分析和记录,以供记录或展现具体操作时参考;
如果在数据库连接描述对象中有相应的属性,则在修改时同步改变所述属性;
其中,所述数据库环境设置项包括:字符集、字符编码、事务提交方式。
5.根据权利要求2所述的获取数据库访问过程的方法,其特征在于,若所述调用信息属于准备数据库操作指令和参数的调用,则所述对所述截获到的调用信息进行处理包括:
创建语句对象时建立语句描述,释放语句对象时销毁语句描述;
其中,所述准备数据库操作指令和参数包括:准备语句、设置选项、绑定参数。
6.根据权利要求2所述的获取数据库访问过程的方法,其特征在于,若所述调用信息属于执行数据库操作指令的调用,则所述调用信息包括语句的引用;所述对所述截获到的调用信息进行处理包括:调用前处理、调用时处理、及调用后处理;其中:
所述对所述截获到的调用信息进行处理的过程作为本次会话;
所述调用前处理包括:检查所述语句是否符合权限审计要求,对于不符合要求的拒绝执行;和/或,将执行语句的内容、选项和参数发送到审计服务器进行记录,记录执行状态为“未执行”;
所述调用后处理包括:记录语句的执行结果,数据修改的程度;如果语句执行失败,更新事务状态为“执行失败”;否则如果语句的类型是DML,则更新事务状态为“已执行”或“已提交”;如果语句的类型是DDL或DCL,则更新事务状态为“已提交”,并把该次会话内事务状态为“已执行”的语句全部修改为“已提交”。
7.根据权利要求2所述的获取数据库访问过程的方法,其特征在于,若所述调用信息属于查询结果数据的调用,则所述对所述截获到的调用信息进行处理包括:
有选择的记录查询的结果数据,所述结果数据包括转换后的结果数据。
8.根据权利要求2所述的获取数据库访问过程的方法,其特征在于,若所述调用信息属于事务控制的调用,则所述对所述截获到的调用信息进行处理包括:
记录各种语句的事务状态,执行时按照连接当时的事务设定发送,如果不是自动提交的,则设置为“已执行”;
如果执行ROLLBACK语句,则将审计服务器的记录中连接“已执行”状态的语句执行全部修改为“已回滚”事务状态;
如果执行COMMIT语句,则将审计服务器的记录中连接“已执行”状态的语句执行全部修改为“已提交”事务状态。
9.根据权利要求1所述的获取数据库访问过程的方法,其特征在于,所述将与所述调用信息对应的结果返回给应用程序包括:
对所述与所述调用信息对应的结果进行分析、和/或记录、和/或修改。
10.一种获取数据库访问过程的装置,其特征在于,包括:
截获单元,用于截获应用程序对数据库客户端库的调用信息;
处理单元,用于对所述截获单元截获到的调用信息进行处理;
反馈单元,用于将与所述调用信息对应的结果返回给应用程序;
其中:
所述截获单元具体用于修改数据库客户端库DCL的名字和/或位置,将审计代理库APL替换为数据库客户端库DCL,使应用程序APP主动加载审计代理库APL,审计代理库APL再加载数据库客户端库DCL;或者
用于修改数据库客户端库DCL以及相关函数的入口,使应用程序APP指向审计代理库APL;或者
用于修改应用程序APP,将对数据库客户端库DCL函数的调用重定向到审计代理库APL;或者
用于在应用程序APP运行时,动态注入审计代理库APL;
其中,所述审计代理库APL为数据库访问代理库。
11.根据权利要求10所述的获取数据库访问过程的装置,其特征在于,所述处理单元具体用于对所述截获到的调用信息进行分析、和/或记录、和/或修改、和/或阻断。
12.根据权利要求10所述的获取数据库访问过程的装置,其特征在于,所述反馈单元具体用于对所述与所述调用信息对应的结果进行分析、和/或记录、和/或修改。
13.根据权利要求10至12中任意一项所述的获取数据库访问过程的装置,其特征在于,所述装置设置在客户端内,介于应用程序与数据库客户端库之间。
14.一种获取数据库访问过程的系统,其特征在于,包括如权利要求10至13中任意一项所述的获取数据库访问过程的装置。
CN 200910179081 2009-10-12 2009-10-12 一种获取数据库访问过程的方法、装置及系统 Active CN101727475B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910179081 CN101727475B (zh) 2009-10-12 2009-10-12 一种获取数据库访问过程的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910179081 CN101727475B (zh) 2009-10-12 2009-10-12 一种获取数据库访问过程的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN101727475A CN101727475A (zh) 2010-06-09
CN101727475B true CN101727475B (zh) 2012-12-19

Family

ID=42448368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910179081 Active CN101727475B (zh) 2009-10-12 2009-10-12 一种获取数据库访问过程的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN101727475B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725882B2 (en) * 2011-09-09 2014-05-13 Oracle International Corporation Masking database outages from clients and applications
CN103678654A (zh) * 2013-12-23 2014-03-26 蓝盾信息安全技术股份有限公司 一种数据库安全审计中获取连接信息的方法
CN104123202A (zh) * 2014-07-18 2014-10-29 珠海市君天电子科技有限公司 一种通信终端中数据的备份方法、还原方法及通信终端
CN105786821A (zh) * 2014-12-19 2016-07-20 北京神州泰岳信息安全技术有限公司 数据库审计方法及装置
CN107194276A (zh) * 2017-05-03 2017-09-22 上海上讯信息技术股份有限公司 数据库动态脱敏方法及设备
CN110347374B (zh) * 2019-06-14 2023-01-13 北京数立得科技有限公司 一种富客户端业务服务封装和调用系统、方法和装置
CN110708353A (zh) * 2019-09-03 2020-01-17 上海派拉软件技术有限公司 基于Mysql代理实现的数据库风险控制方法
CN111176907B (zh) * 2020-01-06 2021-03-05 中科驭数(北京)科技有限公司 硬件数据库回滚方法、软件数据库回滚方法及装置
CN115065622B (zh) * 2022-08-09 2022-11-01 北京安华金和科技有限公司 一种基于多探针的审计设备测试方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196812A (zh) * 2007-12-14 2008-06-11 上海科泰世纪科技有限公司 构件化软件系统实现脚本语言调用多输出参数接口的方法
CN101645020A (zh) * 2008-08-04 2010-02-10 优诺威讯国际有限公司 虚拟操作系统创建方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196812A (zh) * 2007-12-14 2008-06-11 上海科泰世纪科技有限公司 构件化软件系统实现脚本语言调用多输出参数接口的方法
CN101645020A (zh) * 2008-08-04 2010-02-10 优诺威讯国际有限公司 虚拟操作系统创建方法

Also Published As

Publication number Publication date
CN101727475A (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
CN101727475B (zh) 一种获取数据库访问过程的方法、装置及系统
US10719386B2 (en) Method for fault handling in a distributed it environment
US8656452B2 (en) Data assurance
US7580946B2 (en) Smart integration engine and metadata-oriented architecture for automatic EII and business integration
US8307058B2 (en) Apparatus, method, and computer program product for processing information
US7343523B2 (en) Web-based analysis of defective computer programs
CN100492290C (zh) 软件动态演化中构件运行时状态的获取和转换方法
US20070288508A1 (en) Computer software development methods and systems
US20070156901A1 (en) Generation and use of table links in a provider-tenant environment
Baresi et al. Microservices: The evolution and extinction of web services?
US8386608B1 (en) Service scripting framework
US9515948B2 (en) Techniques for generically accessing data
KR20170086560A (ko) 클라우드 서비스 인프라구조를 위한 도메인-특정 언어를 제공 및 실행하기 위한 시스템 및 방법
US20150277941A1 (en) Method and system for linking to shared library
US9330140B1 (en) Transient virtual single tenant queries in a multi-tenant shared database system
US9665352B2 (en) COBOL reference architecture
CN114065296A (zh) 基于拦截器的权限控制方法、装置、计算机设备及介质
CN112685020A (zh) 动态创建服务接口的方法、装置、电子设备及存储介质
US9128886B2 (en) Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium
US20170286523A1 (en) Apparatus and method for verifying cloud service compatibility
WO2021093671A1 (zh) 任务处理方法、系统、装置、设备及计算机可读存储介质
CN114675982A (zh) 一种业务集成系统的数据获取通用方法及系统
US20070074164A1 (en) Systems and methods for information brokering in software management
CN116360931A (zh) 一种链路追踪方法、装置、系统及存储介质
US9477821B2 (en) Generic feature-licensing framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: ZHEJIANG QIZHI SCIENCE + TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: QIZHI (SHANGHAI) INFORMATION SCIENCE + TECHNOLOGY CO., LTD.

Effective date: 20130419

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201203 PUDONG NEW AREA, SHANGHAI TO: 310051 HANGZHOU, ZHEJIANG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130419

Address after: Hangzhou City, Zhejiang province 310051 Binjiang District West Street Binsheng Road No. 1505 Yinfeng building room 905

Patentee after: Zhejiang Qi Technology Co., Ltd.

Address before: 201203 Shanghai city Pudong Zhangjiang Dahl Road 88 No. 3 301

Patentee before: Qizhi (Shanghai) Information Science & Technology Co., Ltd.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Hangzhou City, Zhejiang province 310051 Binjiang District West Street Binsheng Road No. 1505 Yinfeng building room 905

Patentee after: Zhejiang Qi Polytron Technologies Inc

Address before: Hangzhou City, Zhejiang province 310051 Binjiang District West Street Binsheng Road No. 1505 Yinfeng building room 905

Patentee before: Zhejiang Qi Technology Co., Ltd.