本发明涉及数据库审计技术领域,特别是涉及一种信息关联及其数据库审计方法、审计系统。
背景技术:
三层架构是一个分层式的软件体系架构设计,可以适用于各种不同类型的项目。由于三层结构在使用上的优势(开发人员可以仅关注其中一层、容易使用新的实现替代原有实现、降低层间依赖、有利于标准化等),而被广泛的应用。
良好的三层架构可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注。例如ui人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必考虑繁琐的用户交互设计。
通常的,三层架构将整个业务(软件体系)划分为表现层(ui)、业务逻辑层(bll)以及数据访问层(dal)。其中,ui层主要是指与用户交互的界面,用于接收用户输入的数据和显示处理后用户需要的数据。dal层是对非原始数据的操作层,例如数据库,实现对数据库内数据的增、删、改、查等操作,将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。bll层是ui层和dal层之间的桥梁,用以实现业务逻辑。这样的业务逻辑具体可以包含:验证、计算、业务规则等等。
由于三层架构具有上述结构清晰、耦合度低;易维护,易扩展以及利于开发任务同步进行,容易适应需求变化等优点。在医疗等领域运用越来越广泛。
传统的三层架构审计方法,分别由ui层审计http协议,可以把登陆用户名、主机名和操作系统用户名等信息审计出来,dal层审计bll层对数据库的访问,会审计出具体操作的sql事件。
为了进一步的关联ui层和dal层的具体事件,还会采取“模糊匹配”方法来实现“关联分析”。亦即,审计系统首先分别审计出ui层dal层,前者是http事件,后者是sql事件,然后需将这两条事件关联起来,进行时间系列方面的“模糊匹配”,从而将访问的资源帐号和相关的数据库操作关联起来。
在实现本申请过程中,发明人发现相关技术存在以下问题:在传统的审计方法中,并未把ui层的审计结果和dal层的sql事件相关联,不利于保障数据库的安全。
若采取模糊匹配的分析方法,在存在高并发操作的时,关联的结果会出现灾难性的后果,失真率极高(如20%),造成业务用户与sql语句错误关联。
技术实现要素:
本发明提供一种信息关联及其数据库审计方法、审计系统,旨在解决现有技术中关联方法在高并发时,信息关联错误率高的问题。
本发明实施例一方面提供了一种信息关联方法。其中,包括:
提取交互层操作的会话标识符;
提取数据访问层操作的会话标识符,所述会话标识符为会话的唯一标识;
在业务逻辑层获取所述交互层操作与数据访问层操作的关联信息;
根据所述关联信息,通过会话标识符关联所述交互层操作以及数据访问层操作。
可选地,所述提取交互层操作的会话标识符,具体包括:在交互层,通过http协议的cookie或者url提取所述交互层操作对应的会话标识符。
可选地,所述提取数据访问层操作的会话标识符,具体包括:在数据访问层,通过数据库的会话管理或者数据库协议连接报文获取数据访问层的会话标识符。
可选地,所述在业务逻辑层获取所述交互层操作与数据访问层操作的关联信息,具体包括:在所述业务逻辑层设置探针,获取所述交互层操作与对应的数据访问层操作的关联信息。
本发明实施例另一方面提供了一种数据库审计方法。该方法包括:审计所述交互层操作,获得交互层审计记录;审计所述数据访问层操作,获得数据访问层审计记录;使用如上所述的方法,关联所述交互层审计记录和对应的数据访问层审计记录。
本发明实施例另一方面提供了一种信息关联系统。该系统包括:会话标识符提取模块,用于:提取交互层操作的会话标识符;以及提取数据访问层操作的会话标识符,所述会话标识符为会话的唯一标识;关联信息获取模块,用于:在业务逻辑层获取所述交互层操作与数据访问层操作的关联信息;信息关联模块,用于:根据所述关联信息,通过会话标识符关联所述交互层操作以及数据访问层操作。
可选地,所述会话标识符提取模块,具体用于:在交互层,通过http协议的cookie或者url提取所述交互层操作对应的会话标识符。
可选地,所述会话标识符提取模块,具体用于:在数据访问层,通过数据库的会话管理或者数据库协议连接报文获取数据访问层的会话标识符。
可选地,所述关联信息获取模块,具体用于:在所述业务逻辑层设置探针,获取所述交互层操作与对应的数据访问层操作的关联信息。
本发明实施例另一方面提供了一种数据库审计系统。其中,该系统包括:审计模块,用于审计所述交互层操作,获得交互层审计记录;以及审计所述数据访问层操作,获得数据访问层审计记录;关联模块,用于使用如上所述的方法,关联所述交互层审计记录和对应的数据访问层审计记录。
本发明实施例提供的信息关联方法和数据库审计系统,利用唯一的会话标识符来确定ui层的访问资源账号以及dal层相关的数据库操作之间的对应关系。由于会话标识符的唯一性,可以确保对应关系也是唯一的。因此,可以准确的将ui层和dal层相关的操作进行关联,保障了审计结果的安全与可靠性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的信息关联方法的方法流程图;
图2是本发明实施例提供的信息关联系统的功能框图;
图3是本发明实施例提供的数据库审计的数据处理示意图;
图4是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
图1为本发明实施例一方面提供了一种信息关联方法。该信息关联方法应用于三层架构的业务中,用以确定在不同层上的操作的对应关系并据此将两个操作建立关联。
如图1所示,该信息关联方法包括如下步骤:
100:提取交互层操作的会话标识符。会话(session)是指通信双方从通信开始到结束期间的一个上下文(context),其是逻辑上的用户(如数据库服务器)与处理端(如数据库)之间的通信交互。
数据库服务器与数据库之间建立连接,在物理信道上可以完成一个或者多个会话。每个会话均会被分配一个唯一的编号或者编码,在本实施例中,以“会话标识符”这样的术语表示上述用以区别或者确认会话的编号或者编码。当然,所述“会话标识符”还可以是任何合适类型的id或者其它形式的数据,可以用于区分不同会话即可。
在一些实施例中,上述会话标识符可以在浏览器和web服务器之间,通过cookie进行传输。在另一些情形中,若指定了无cookie会话,会话标识符则通过url进行传输。相对应的,在本实施例中,即可以通过http协议的cookie或者url来提取某个ui层操作对应的会话标识符。
200:提取数据访问层操作的会话标识符,所述会话标识符为会话的唯一标识。分层架构中的ui层和dal层的操作均有其对应的会话标识符。获取到的会话标识符可以作为参考信息以确定对应关系。
可选地,dal层操作则可以通过数据库的会话管理或者数据库协议连接报文获取操作对应的会话标识符。
300:在业务逻辑层获取所述交互层操作与数据访问层操作的关联信息。bll层(业务逻辑层)作为ui层和dal层的连接桥梁,包含了交互层操作和数据访问层操作之间的一些相关信息。
所述关联信息具体可以一些合适的,用以表示两个不同层上操作的对应关系,例如某个登录用户名对应的,执行的一个或者多个具体操作的sql事件之间的关联信息。
在一些实施例中,可以通过在所述业务逻辑层嵌入探针的方式来实现对于关联信息的获取。该探针能够抓取一些交互层操作与对应的数据访问层操作的关联信息以供使用。
400:根据所述关联信息,通过会话标识符关联所述交互层操作以及数据访问层操作。
根据所述关联信息,可以把对应的会话标识符关联,从而唯一的确定交互层操作以及数据访问层操作的对应关系,实现信息关联。由于会话标识符具有可靠的唯一性。因此,这样的对应关系也是唯一并且可靠的,即使在高并发的情况下,仍然能够保持关联关系的准确率,避免ui层操作和dal层操作之间出现关联错误。
本发明实施例还提供了一种应用如上实施例所述的信息关联方法的数据库审计方法。在数据库审计过程中,对ui层操作和dal层操作的审计结果进行关联。在本发明实施例中,数据库审计过程中,首先分别审计所述交互层操作以及所述数据访问层操作,获得交互层审计记录以及数据访问层审计记录。
然后,使用如上实施例揭露的方法,关联所述交互层审计记录和对应的数据访问层审计记录。
通过本发明实施例提供的数据库审计方法,可以将ui层访问的资源账号和dal层相关的数据库操作准确无误的关联起来。业务用户和sql语句(事件)之间的关联更为准确,错误率与模糊匹配的方法相比,得到了极大的降低,能够提供更好的审计信息,保障数据库操作的安全。
本发明实施例还提供了一种信息关联系统。如图2所示,该系统包括:会话标识符提取模块100、关联信息获取模块200以及信息关联模块300。
其中,所述会话标识符提取模块100用于提取交互层操作的会话标识符以及提取数据访问层操作的会话标识符,所述会话标识符为会话的唯一标识。关联信息获取模块200用于在业务逻辑层获取所述交互层操作与数据访问层操作的关联信息。信息关联模块300用于根据所述关联信息,通过会话标识符关联所述交互层操作以及数据访问层操作。
在实际操作过程中,首先通过会话识别符提取模块100提取操作对应的会话标识符。并且,通过关联信息获取模块200获取到所述关联关系。最后,信息关联模块300基于所述关联关系,关联相关的会话标识符从而确定所述交互层操作以及数据访问层操作的对应关系。
在一些实施例中,所述会话标识符提取模块100具体用于:在交互层,通过http协议的cookie或者url提取所述交互层操作对应的会话标识符。或者,在数据访问层,通过数据库的会话管理或者数据库协议连接报文获取数据访问层的会话标识符。
在另一些实施例中,所述关联信息获取模块200具体用于:在所述业务逻辑层设置探针,获取所述交互层操作与对应的数据访问层操作的关联信息。
需要说明的是,由于信息关联系统与信息关联方法基于相同的申请构思,因此,方法实施例中的相应内容同样适用于系统实施例,此处不再详述。
与本发明实施例提供的数据库审计方法相对应的,本发明实施例还提供了数据库审计系统。该系统包括:审计模块和关联模块。所述审计模块400用于审计所述交互层操作,获得交互层审计记录以及审计所述数据访问层操作,获得数据访问层审计记录。所述关联模块可以执行如上述方法实施例提供的信息关联方法,关联所述交互层审计记录和对应的数据访问层审计记录。
图3为本发明实施例提供的,在三层架构的软件体系中,应用所述数据审计系统的示意图。如图3所示,软件体系包括了ui层、bll层以及dal层这样典型的三层架构。
在ui层和dal层上,所述审计模块输出对应的操作审计记录以及用于标识这一操作的,唯一的会话标识符(ui层操作会话标识符11和dal层操作会话标识符12)。
在bll层中,嵌入有探针这样的功能模块,获取ui层操作和dal层操作之间的关联信息10。
所述关联模块通过所述关联信息10,将对应的ui层操作会话标识符11和dal层操作会话标识符12关联,并最终输出ui的账号信息等ui层操作与dal层的sql事件之间的关联关系20(对应关系)。
通过这样的方式,可以避免传统审计方法中很难把用户(ui层账号)和对数据库的具体操作关联或者关联出错的问题,在任何情况下都能精确审计,定位到用户,保证对于数据库的全面审计,确保数据库的安全。
图4是本发明实施例提供的一种电子设备的硬件结构示意图。如图4所示,该设备包括:一个或多个处理器410以及存储器420,图4中以一个处理器410为例。
处理器410和存储器420可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的信息关联方法对应的程序指令/模块(例如,附图2所示的会话标识符提取模块100、关联信息获取模块200以及信息关联模块300)。
处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例信息关联方法。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据信息关联系统的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至信息关联系统。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器420中,当被所述一个或者多个处理器410执行时,执行上述任意方法实施例中的信息关联方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。所述的计算机软件可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。