首页> 中国专利> 一种数据库审计方法、装置及数据库代理服务器

一种数据库审计方法、装置及数据库代理服务器

摘要

本发明实施例提供了一种数据库审计方法、装置及数据库代理服务器,涉及数据库技术领域。该方法应用于为分布式数据库所配置的任一代理服务器,包括:在获取到针对分布式数据库的数据库访问请求和数据库访问请求的解析结果后,基于解析结果和预设的审计规则,判断是否对数据库访问请求进行审计;若判断结果为是,则获取解析结果中,与审计规则相匹配的待审计数据;将所获取到的待审计数据发送至管理服务器,以使管理服务器基于多个数据库代理服务器发送的待审计数据,生成针对审计规则的审计结果。与现有技术相比,应用本发明实施例提供的方案,可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

著录项

  • 公开/公告号CN113010494A

    专利类型发明专利

  • 公开/公告日2021-06-22

    原文格式PDF

  • 申请/专利权人 北京金山云网络技术有限公司;

    申请/专利号CN202110288999.4

  • 发明设计人 张健;

    申请日2021-03-18

  • 分类号G06F16/21(20190101);G06F16/2455(20190101);G06F16/27(20190101);

  • 代理机构11413 北京柏杉松知识产权代理事务所(普通合伙);

  • 代理人孙翠贤;高莺然

  • 地址 100085 北京市海淀区西二旗中路33号院4号楼6层006号

  • 入库时间 2023-06-19 11:32:36

说明书

技术领域

本发明涉及数据库技术领域,特别是涉及一种数据库审计方法、装置及数据库代理服务器。

背景技术

当前,随着数据库技术的不断发展,数据库在越来越多的领域中得到了广泛的应用,同时,也面临着越来越多的安全挑战。

通常,为了提高数据库的安全性,可以采用数据库审计方法(Database audit,DBAudit)对用户访问数据库的行为进行记录、分析和汇报,并利用审计结果对用户访问数据库的行为进行追溯和控制,从而,实现对数据库的合规性管理,对数据库遭受到的风险行为进行告警,以及对针对数据库的攻击行为进行阻断。

对于分布式数据库而言,各个租户可以通过该分布式数据库所配置的多个数据库代理服务器(Proxy Server)访问该分布式数据库,其中,不同的租户可以通过不同的数据库代理服务器访问该分布式数据库,且同一租户也可以通过不同的数据库代理服务器访问该分布式数据库。

基于此,如何对各个租户针对分布式数据库的访问行为进行全局审计,便成为一个亟待解决的问题。

发明内容

本发明实施例的目的在于提供一种数据库审计方法、装置及数据库代理服务器,以实现对各个租户针对分布式数据库的访问行为进行全局审计。具体技术方案如下:

第一方面,本发明实施例提供了一种数据库审计方法,应用于为分布式数据库所配置的多个数据库代理服务器中的任一代理服务器,所述多个数据库代理服务器与预设的用于全局审计的管理服务器通信连接;所述方法包括:

在获取到针对所述分布式数据库的数据库访问请求和所述数据库访问请求的解析结果后,基于所述解析结果和预设的审计规则,判断是否对所述数据库访问请求进行审计;

若判断结果为是,则获取所述解析结果中,与所述审计规则相匹配的待审计数据;

将所获取到的待审计数据发送至所述管理服务器,以使所述管理服务器基于所述多个数据库代理服务器发送的待审计数据,生成针对所述审计规则的审计结果。

可选的,一种具体实现方式中,所述审计规则包括:审计条件和与所述审计条件对应的审计字段;其中,所述审计条件为针对指定字段所设置的、用于表征访问请求可被审计的条件,所述审计字段为在任一访问请求满足所述审计条件时,该访问请求的解析结果中待进行数据审计的字段;

所述基于所述解析结果和预设的审计规则,判断是否对所述数据库访问请求进行审计的步骤,包括:

判断所述解析结果中所述指定字段的字段值是否符合所述审计条件;

所述获取所述解析结果中,与所述审计规则相匹配的待审计数据的步骤,包括:

获取所述解析结果中,所述审计字段的字段值,作为待审计数据。

可选的,一种具体实现方式中,所述指定字段包括如下字段中的至少一个:

租户、访问时间、库表、访问操作和数据库节点。

可选的,一种具体实现方式中,所述将所述待审计数据发送至所述管理服务器的步骤之前,所述方法还包括:

在指定缓存空间中缓存所获取的待审计数据;

所述将所获取的待审计数据发送至所述管理服务器的步骤,包括:

在所述指定缓存空间中所缓存的待审计数据满足预设的发送条件时,将所缓存的待审计数据发送至所述管理服务器;

其中,所述发送条件包括以下条件中的至少一个:

所缓存的待审计数据的数据量达到预设数据量;

距离上一次向所述管理服务器发送所缓存待审计数据的时长达到预设时长。

可选的,一种具体实现方式中,所述方法还包括:

输出审计规则设置界面;

获取用户基于所述审计规则设置界面所发出的审计规则更新指令;

基于所述审计规则更新指令,更新所述审计规则。

第二方面,本发明实施例提供了一种数据库审计装置,应用于为分布式数据库所配置的多个数据库代理服务器中的任一代理服务器,所述多个数据库代理服务器与预设的用于全局审计的管理服务器通信连接;所述方法包括:

请求判断模块,用于在获取到针对所述分布式数据库的数据库访问请求和所述数据库访问请求的解析结果后,基于所述解析结果和预设的审计规则,判断是否对所述数据库访问请求进行审计;若判断结果为是,触发数据获取模块;

所述数据获取模块,用于获取所述解析结果中,与所述审计规则相匹配的待审计数据;

数据发送模块,用于将所获取到的待审计数据发送至所述管理服务器,以使所述管理服务器基于所述多个数据库代理服务器发送的待审计数据,生成针对所述审计规则的审计结果。

可选的,一种具体实现方式中,所述审计规则包括:审计条件和与所述审计条件对应的审计字段;其中,所述审计条件为针对指定字段所设置的、用于表征访问请求可被审计的条件,所述审计字段为在任一访问请求满足所述审计条件时,该访问请求的解析结果中待进行数据审计的字段;

所述请求判断模块具体用于:判断所述解析结果中所述指定字段的字段值是否符合所述审计条件;

所述数据获取模块具体用于:获取所述解析结果中,所述审计字段的字段值,作为待审计数据。

可选的,一种具体实现方式中,所述指定字段包括如下字段中的至少一个:租户、访问时间、库表、访问操作和数据库节点。

可选的,一种具体实现方式中,所述装置还包括:

数据缓存模块,用于在所述将所述待审计数据发送至所述管理服务器之前,在指定缓存空间中缓存所获取的待审计数据;

所述数据发送模块具体用于:在所述指定缓存空间中所缓存的待审计数据满足预设的发送条件时,将所缓存的待审计数据发送至所述管理服务器;

其中,所述发送条件包括以下条件中的至少一个:

所缓存的待审计数据的数据量达到预设数据量;

距离上一次向所述管理服务器发送所缓存待审计数据的时长达到预设时长。

可选的,一种具体实现方式中,所述装置还包括:

界面输出模块,用于输出审计规则设置界面;

指令获取模块,用于获取用户基于所述审计规则设置界面所发出的审计规则更新指令;

规则更改模块,用于基于所述审计规则更新指令,更新所述审计规则。

第三方面,本发明实施例提供了一种数据库审计系统,所述系统包括:为分布式数据库所配置的多个数据库代理服务器和用于全局审计的管理服务器,所述多个数据库代理服务器与所述管理服务器通信连接;

每一数据库代理服务器,用于在获取到针对所述分布式数据库的数据库访问请求和所述数据库访问请求的解析结果后,基于所述解析结果和预设的审计规则,判断是否对所述数据库访问请求进行审计;若判断结果为是,则获取所述解析结果中,与所述审计规则相匹配的待审计数据;将所获取到的待审计数据发送至所述管理服务器;

所述管理服务器,用于基于所述多个数据库代理服务器发送的待审计数据,生成针对所述审计规则的审计结果。

可选的,一种具体实现方式中,所述管理服务器为预设的审计数据库集群中的服务器,所述审计数据库集群还包括:存储服务器;

所述管理服务器,还用于将所述审计结果发送至所述存储服务器;

所述存储服务器,用于存储所述管理服务器发送的审计结果。

可选的,一种具体实现方式中,所述存储服务器的数量为多个;

所述管理服务器,具体用于根据预设的存储规则,从多个存储服务器中确定用于存储所述审计结果的目标存储服务器,将所述审计结果发送至所述目标存储服务器。

可选的,一种具体实现方式中,所述审计规则包括:审计条件和与所述审计条件对应的审计字段;其中,所述审计条件为针对指定字段所设置的、用于表征访问请求可被审计的条件,所述审计字段为在任一访问请求满足所述审计条件时,该访问请求的解析结果中待进行数据审计的字段;

每一数据库代理服务器具体用于:判断所述解析结果中所述指定字段的字段值是否符合所述审计条件;若判断结果为是,则获取所述解析结果中,所述审计字段的字段值,作为待审计数据。

可选的,一种具体实现方式中,所述指定字段包括如下字段中的至少一个:租户、访问时间、库表、访问操作和数据库节点。

可选的,一种具体实现方式中,每一数据库代理服务器610,还用于在指定缓存空间中缓存所获取的待审计数据;

每一数据库代理服务器具体用于:在所述指定缓存空间中所缓存的待审计数据满足预设的发送条件时,将所缓存的待审计数据发送至所述管理服务器;

其中,所述发送条件包括以下条件中的至少一个:

所缓存的待审计数据的数据量达到预设数据量;

距离上一次向所述管理服务器发送所缓存待审计数据的时长达到预设时长。

可选的,一种具体实现方式中,每一数据库代理服务器,还用于输出审计规则设置界面;获取用户基于所述审计规则设置界面所发出的审计规则更新指令;基于所述审计规则更新指令,更新所述审计规则。

第四方面,本发明实施例提供了一种数据库代理服务器,所述数据库代理服务器是为分布式数据库所配置的代理服务器,且与预设的用于全局审计的管理服务器通信连接,所述数据库代理服务器包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的任一数据库审计方法的步骤。

第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一数据库审计方法的步骤。

第六方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的任一数据库审计方法的步骤。

本发明实施例有益效果:

以上可见,应用本发明实施例提供的方案,为了实现对各个租户针对分布式数据库的访问行为进行全局审计,可以设置与为分布式数据库所配置的多个数据库代理服务器通信连接,且用于全局审计的管理服务器。

这样,为分布式数据库所配置的任一数据库代理服务器在获取到针对分布式数据库的数据库访问请求和该数据库访问请求的解析结果后,便可以基于该解析结果和预设的审计规则,判断是否对该数据库访问请求进行审计,并在判断结果为是时,获取该解析结果中,与审计规则相匹配的待审计数据。进而,该数据库代理服务器便可以将所获取到的待审计数据发送至所设置的管理服务器。从而,管理服务器在接收到各个数据库代理服务器发送的待审计数据后,便可以基于各个数据库代理服务器发送的待审计数据,生成针对上述审计规则的审计结果。

基于此,应用本发明实施例提供的方案,由于用于全局审计的管理服务器可以与为分布式数据库所配置的多个数据库代理服务器通信连接,从而,该管理服务器可以获取到针对分布式数据库的全局待审计数据,从而,实现对分布式数据库的全局审计。这样,便可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为一个由3个数据库代理服务器和管理服务器构成的数据库审计系统的结构示意图;

图2为本发明实施例提供的一种数据库审计方法的流程示意图;

图3为本发明实施例提供的另一种数据库审计方法的流程示意图;

图4为本发明实施例提供的再一种数据库审计方法的流程示意图;

图5为本发明实施例提供的一种数据库审计装置的结构示意图;

图6为本发明实施例提供的一种数据库审计系统的结构示意图;

图7为本发明实施例提供的一种数据库代理服务器的结构示意图;

图8为本发明实施例提供的一种数据库审计方法的具体实现方式的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。

对于分布式数据库而言,各个租户可以通过该分布式数据库所配置的多个数据库代理服务器访问该分布式数据库,其中,不同的租户可以通过不同的数据库代理服务器访问该分布式数据库,且同一租户也可以通过不同的数据库代理服务器访问该分布式数据库。基于此,如何对各个租户针对分布式数据库的访问行为进行全局审计,便成为一个亟待解决的问题。

为了解决上述技术问题,本发明实施例提供了一种数据库审计方法。

其中,该方法可以应用于为分布式数据库所配置的多个数据库代理服务器中的任一代理服务器,并且,上述多个数据库代理服务器可以与预设的用于全局审计的管理服务器通信连接。

这样,上述为分布式数据库所配置的多个数据库代理服务器和预设的用于全局审计的管理服务器便可以构成一个数据库审计系统。其中,为了便于描述,之后将为分布式数据库所配置的数据库代理服务器简称为数据库代理服务器,将预设的用于全局审计的管理服务器简称为管理服务器。

例如,如图1所示,为一个由3个数据库代理服务器和管理服务器构成的数据库审计系统的结构示意图。其中,该系统包括:数据库代理服务器110-1、110-2和110-3和管理服务器120。进而,数据库代理服务器110-1、110-2和110-3均可以作为本发明实施例提供的一种数据库审计方法的执行主体,将所获取到的待审计数据发送给管理服务器120,以使管理服务器120基于数据库代理服务器110-1、110-2和110-3发送的待审计数据,生成针对审计规则的审计结果。

其中,为了能够响应用户针对分布式数据库的数据库访问请求,在各个数据库代理服务器中可以包括计算引擎,当租户通过某个数据库代理服务器访问分布式数据库时,该数据库代理服务器便可以获取到租户发送的针对分布式数据库的数据库访问请求。进而,该数据库代理服务器中的计算引擎便可以对该数据库访问请求进行解析,得到解析结果,并根据该解析结果生成相应的执行计划,进而,便可以根据该执行计划,访问分布式数据库中的数据存储节点,得到该数据库访问请求的响应结果,并向发送该数据库访问请求的设备反馈该响应结果,至此,完成对上述数据库访问请求的响应。

进而,为了便于描述,可以将用于执行本发明实施例提供的一种数据库审计方法的装置简称为数据库审计装置。

可选的,可以在数据库代理服务器的计算引擎中添加上述数据库审计装置。也就是说,本发明实施例提供的一种数据库审计方法可以作为计算引擎能够实现的功能之一。那么,数据库代理服务器的计算引擎可以实现对数据库访问请求的解析与响应,也可以实现本发明实施例提供的一种数据库审计方法。这样,本发明实施例提供的一种数据库审计方法的执行主体具体可以为数据库代理服务器中的计算引擎。

可选的,上述数据库审计装置也可以设置为与该数据库代理服务器的计算引擎相互独立,且与该计算引擎通信连接的装置。那么,在本发明实施例中,该数据库代理服务器的计算引擎用于实现对数据库访问请求的解析与响应,该数据库审计装置用于实现本发明实施例提供的一种数据库审计方法,其中,该数据库审计装置可以从上述计算引擎处获取数据库访问请求的解析结果。这样,本发明实施例提供的一种数据库审计方法的执行主体具体可以为数据库代理服务器中的数据库审计装置。

另外,需要说明的是,在上述两种可选的实施例中,本发明实施例提供的一种数据库审计方法的执行主体均可以理解为是:数据库代理服务器。

其中,本发明实施例提供的一种数据库审计方法可以包括如下步骤:

在获取到针对所述分布式数据库的数据库访问请求和所述数据库访问请求的解析结果后,基于所述解析结果和预设的审计规则,判断是否对所述数据库访问请求进行审计;

若判断结果为是,则获取所述解析结果中,与所述审计规则相匹配的待审计数据;

将所获取到的待审计数据发送至所述管理服务器,以使所述管理服务器基于所述多个数据库代理服务器发送的待审计数据,生成针对所述审计规则的审计结果。

以上可见,应用本发明实施例提供的方案,为了实现对各个租户针对分布式数据库的访问行为进行全局审计,可以设置与为分布式数据库所配置的多个数据库代理服务器通信连接,且用于全局审计的管理服务器。

这样,为分布式数据库所配置的任一数据库代理服务器在获取到针对分布式数据库的数据库访问请求和该数据库访问请求的解析结果后,便可以基于该解析结果和预设的审计规则,判断是否对该数据库访问请求进行审计,并在判断结果为是时,获取该解析结果中,与审计规则相匹配的待审计数据。进而,该数据库代理服务器便可以将所获取到的待审计数据发送至所设置的管理服务器。从而,管理服务器在接收到各个数据库代理服务器发送的待审计数据后,便可以基于各个数据库代理服务器发送的待审计数据,生成针对上述审计规则的审计结果。

基于此,应用本发明实施例提供的方案,由于用于全局审计的管理服务器可以与为分布式数据库所配置的多个数据库代理服务器通信连接,从而,该管理服务器可以获取到针对分布式数据库的全局待审计数据,从而,实现对分布式数据库的全局审计。这样,便可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

下面结合附图,对本发明实施例提供的一种数据库审计方法进行具体说明。

如图2所示,为本发明实施例提供的一种数据库审计方法的流程示意图,如图2所示,该方法可以包括如下步骤:

S201:在获取到针对分布式数据库的数据库访问请求和数据库访问请求的解析结果后,基于解析结果和预设的审计规则,判断是否对数据库访问请求进行审计;若判断结果为是,则执行步骤S202;

在获取到针对分布式数据库的数据库访问请求后,数据库代理服务器中的计算引擎便可以对该数据库访问请求进行解析,从而,得到该数据库访问请求的解析结果。

这样,在获取到针对分布式数据库的数据库访问请求和数据库访问请求的解析结果后,数据库代理服务器便可以基于解析结果和预设的审计规则,判断是否对数据库访问请求进行审计。其中,若判断结果为是,则说明需要对该数据库访问请求进行审计,从而,该数据库访问请求的解析结果中存在进行审计所需的待审计数据。基于此,若判断结果为是,则数据库代理服务器便可以继续执行后续的步骤S202。

相应的,若判断结果为否,则无需对该数据库访问请求进行审计,从而,无需继续执行后续的步骤,可以忽略该数据库访问请求。

其中,当在数据库代理服务器的计算引擎添加数据库审计装置设置时,在该数据库代理服务器的计算引擎解析得到数据库访问请求的解析结果后,该计算引擎便可以直接获取到针对分布式数据库的数据库访问请求和数据库访问请求的解析结果,从而,该计算引擎便可以继续执行本发明实施例提供的一种数据库审计方法。

而当数据库审计装置设置为与数据库代理服务器的计算引擎相互独立,且与该计算引擎通信连接的装置时,在该计算引擎解析得到上述数据库访问请求的解析结果后,该数据库审计装置便可以从该计算引擎处获取针对分布式数据库的数据库访问请求和数据库访问请求的解析结果,并继续执行本发明实施例提供的一种数据库审计方法。

其中,该预设的审计规则能够表征出哪些数据访问请求需要被审计,以及,具体需要审计哪些内容。为了方案清楚,以及布局清晰,后续对审计规则的具体内容进行介绍。

S202:获取解析结果中,与审计规则相匹配的待审计数据;

进而,当上述步骤S201的判断结果为是时,则说明需要对上述所获取到的数据库访问请求进行审计,并且,该数据库访问请求的解析结果中存在进行审计所需的待审计数据。

这样,便可以获取解析结果中,与审计规则相匹配的待审计数据。

S203:将所获取到的待审计数据发送至管理服务器,以使管理服务器基于多个数据库代理服务器发送的待审计数据,生成针对审计规则的审计结果。

在获取到上述待审计数据后,便可以将所获取到的待审计数据发送至管理服务器。

这样,由于管理服务器可以与为分布式数据库所配置的多个数据库代理服务器通信连接,因此,管理服务器可以获取到为分布式数据库所配置的各个数据库代理服务器发送的待审计数据。从而,管理服务器可以获取到各个租户通过各个数据库代理服务器发送的,针对分布式数据库的各个数据库访问请求的解析结果中的待审计数据。也就是说,管理服务器可以获取到针对分布式数据库的全局待审计数据。

基于此,管理服务器便可以基于多个数据库代理服务器发送的待审计数据,生成针对上述预设的审计规则的审计结果。其中,由于管理服务器可以获取到针对分布式数据库的全局待审计数据,因此,管理服务器所生成的审计结果即为针对分布式数据库,且针对上述预设的审计规则的全局审计结果。这样,便可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

示例性的,在一种实现方式中,管理服务器可以直接将所获取到的多个数据库代理服务器发送的待审计数据,确定为针对审计规则的审计结果。

示例性的,在另一种实现方式中,管理服务器可以按照预设的处理规则,对所获取到的多个数据库代理服务器发送的待审计数据进行处理,从而,将所得到的处理结果,确定为针对审计规则的审计结果。

例如,管理服务器可以按照预设的排布规则,对所获取到的多个数据库代理服务器发送的待审计数据进行重新排布,并将重新排布后的待审计数据,确定为针对审计规则的审计结果。

当然,管理服务器还可以利用其它方式生成针对审计规则的审计结果,对此,本发明实施例不做具体限定。

示例性的,在一种实现方式中,上述管理服务器可以为预设的审计数据库集群中的服务器,并且,该审计数据库集群还可以包括:存储服务器。

这样,上述管理服务器在生成针对审计规则的审计结果后,便可以进一步将该审计结果发送至存储服务器。从而,该存储服务器便可以存储所接收到的审计结果。

基于此,应用本实现方式中,便可以实现对审计结果的保存,从而,在需要再次应用该审计结果时,可以直接从存储服务器中获取到该审计结果,保证后续应用的正常进行。

示例性的,在另一种实现方式中,上述管理服务器可以为预设的审计数据库集群中的服务器,并且,该审计数据库集群还可以包括:多个存储服务器。

其中,管理服务器中可以预先设定存储规则,该存储规则用于指示各个存储服务器所存储的审计结果的类型。

例如,审计数据库集群中包括3个存储服务器1-3;存储服务器1用于存储针对审计条件为租户A的审计规则的审计结果;存储服务器2用于存储针对审计条件为租户B的审计规则的审计结果;存储服务器3用于存储针对审计条件为租户C的审计规则的审计结果等。

从而,上述管理服务器在生成针对审计规则的审计结果后,便可以根据预设的存储规则,从多个存储服务器中确定用于存储审计结果的目标存储服务器,进而,管理服务器便可以将所生成的审计结果发送至目标存储服务器。这样,该目标存储服务器便可以存储所接收到的审计结果。

基于此,应用本实现方式中,便可以实现对审计结果的分类保存,从而,在需要再次应用各个审计结果时,可以根据所需要的审计结果的类型,直接从保存该审计结果的目标存储服务器中查找该审计结果,在保证后续应用正常进行的前提下,节省审计结果查找所需的时间,提高查找效率。

以上可见,应用本发明实施例提供的方案,由于用于全局审计的管理服务器可以与为分布式数据库所配置的多个数据库代理服务器通信连接,从而,该管理服务器可以获取到针对分布式数据库的全局待审计数据,从而,实现对分布式数据库的全局审计。这样,便可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

此外,应用本发明实施例提供的方案,不需要对租户和数据库代理服务器进行绑定,可以充分利用分布式数据库的高并发特性和高可用特性。并且,仅仅需要设置一个与为分布式数据库所配置的多个数据库代理服务器通信连接的管理服务器,而无需设置数据存储系统、数据分析系统、数据聚合系统等较多的系统组件,可以减少数据传输链条,提高审计效率,降低方案的复杂度。

进一步的,由于数据库访问请求的审计结果是由数据库代理服务器中的计算引擎解析得到的,从而,当数据库访问请求加密时,仍然可以获取到数据库访问请求的审计结果,实现对数据库访问请求的审计。并且,由于在审计过程中,计算引擎可以正常地响应数据库访问请求,从而,也不会对分布式数据库的实时业务产生影响。

可选的,一种具体实现方式中,审计规则包括:审计条件和与审计条件对应的审计字段;其中,审计条件为针对指定字段所设置的、用于表征访问请求可被审计的条件,审计字段为在任一访问请求满足审计条件时,该访问请求的解析结果中待进行数据审计的字段。

例如,审计规则中所包括的审计条件为:租户A,审计字段为:访问时间、访问操作和库表。则该审计规则表示:针对每个数据库访问请求,若该数据库访问请求的发送方为租户A,则对该数据库访问请求进行审计,且从该数据库访问请求的解析结果中所获取的待审计数据为:该数据库访问请求的访问时间、所访问的库表和所执行的访问操作。并且,在该举例中,指定字段为租户。

示例性的,指定字段可以包括如下字段中的至少一个:租户、访问时间、库表、访问操作和数据库节点。当然,指定字段还可以包括其他字段,对此,本发明实施例不做具体限定。

示例性的,针对某个数据库访问请求,该数据库访问请求的解析结果包括:租户A、访问时间为2021年1月28日10:29:33、所访问的库表为库表C和所执行的访问操作为删除操作,则对该数据库访问请求进行审计,并且,获取待审计数据:2021年1月28日10:29:33、库表C和删除操作。

基于此,在本具体实现方式中,如图3所示:

上述步骤S201,基于解析结果和预设的审计规则,判断是否对数据库访问请求进行审计,可以包括如下步骤S201A:

S201A:判断解析结果中指定字段的字段值是否符合审计条件;

上述步骤S202,获取解析结果中,与审计规则相匹配的待审计数据,可以包括如下步骤S202A:

S202A:获取解析结果中,审计字段的字段值,作为待审计数据。

在本具体实现方式中,在获取到数据库访问请求的解析结果后,便可以首先确定该解析结果中指定字段的字段值,进而,便可以判断该字段值是否符合审计条件。

其中,当该字段值符合审计条件时,则可以判断出对该数据库访问请求进行审计。进而,便可以获取解析结果中,审计字段的字段值,作为待审计数据。

例如,审计规则中所包括的审计条件为:租户A,审计字段为:访问时间、访问操作和库表。则在获取到某个数据库访问请求和该数据库访问请求的解析结果后,便可以首先判断该数据库访问请求的解析结果中,租户字段的字段值是否为A,从而,在判断结果为是时,便可以进一步获取该数据库访问请求的解析结果中,访问时间字段、访问操作字段和库表字段的字段值,从而,将所获取到的访问时间字段、访问操作字段和库表字段的字段值,作为待审计数据。

可选的,一种具体实现方式中,如图4所示,本发明实施例提供的一种数据库审计方法还可以包括如下步骤S200:

S200:在指定缓存空间中缓存所获取的待审计数据;

相应的,在本具体实现方式中,上述步骤S203,将所获取到的待审计数据发送至管理服务器,可以包括如下步骤S203A:

S203A:在指定缓存空间中所缓存的待审计数据满足预设的发送条件时,将所缓存的待审计数据发送至管理服务器;

其中,发送条件包括以下条件中的至少一个:

所缓存的待审计数据的数据量达到预设数据量;

距离上一次向管理服务器发送所缓存待审计数据的时长达到预设时长。

在本具体实现方式中,在获取到待审计数据后,可以不立即将所获取的待审计数据发送至管理服务器,而可以在指定缓存空间中缓存所获取的待审计数据。进而,在指定缓存空间中所缓存的待审计数据满足预设的发送条件时,便可以将所缓存的待审计数据发送至管理服务器。

这样,数据库代理服务器可以通过一次数据传输向管理服务器传输较多的待审计数据,从而,可以降低数据库代理服务器和管理服务器之间的交互次数,减轻数据交互压力,节省数据交互带来的资源浪费。

并且,可选的,在将所获取的待审计数据缓存至指定缓存空间中后,还可以对所缓存的待审计数据进行整理,例如,按照指定字段进行重新排布等,从而,可以减轻管理服务器在生成针对审计规则的审计结果时的处理复杂度,减轻管理服务器的处理压力,提高审计结果的生成效率。

根据不同的审计目的,可以预设不同的审计规则,因此,在实际应用过程中,随着应用场景的改变,审计目的可以发生变化,从而,审计规则也就可以随之更新。

基于此,可选的,一种具体实现方式中,本发明实施例提供的一种数据库审计方法还可以包括如下步骤A-C。

步骤A:输出审计规则设置界面;

步骤B:获取用户基于审计规则设置界面所发出的审计规则更新指令;

步骤C:基于审计规则更新指令,更新审计规则。

在本具体实现方式中,数据库代理服务器可以输出审计规则设置界面,从而,用户可以在该审计规则设置界面中,通过输入、点选等操作,输入新的审计规则,从而,向数据库代理服务器发送审计规则更新指令。

这样,数据库代理服务器便可以获取用户基于审计规则设置界面所发出的审计规则更新指令,并基于所获取到的审计规则更新指令,更新审计规则。

其中,可选的,用户在向数据库代理服务器发送审计规则更新指令时,可以指示该审计规则更新指令仅仅用于更改该数据库代理服务器中的审计规则。例如,上述审计规则设置界面中可以包括:第一更新按钮,该第一更新按钮为:用于发出仅更改该数据库代理服务器中的审计规则的指令的按钮,则用户在输出新的审计规则后,可以点击该第一更新按钮,从而,数据库代理服务器便可以获取用户基于审计规则设置界面所发出的审计规则更新指令,并且,确定该审计规则更新指令仅用于更改该数据库代理服务器中的审计规则。

基于此,在该具体实现方式中,为分布式数据库所设置的多个数据库代理服务器中可以包括不同的审计规则,从而,可以同时实现对分布式数据库的多维度的全局审计。

相应的,可选的,用户在向数据库代理服务器发送审计规则更新指令时,可以指示该审计规则更新指令用于更改全部数据库代理服务器中的审计规则。

例如,上述审计规则设置界面中可以包括:第二更新按钮,该第二更新按钮为:用于发出更改为分布式数据库所设置的全部数据库代理服务器中的审计规则的指令的按钮,则用户在输出新的审计规则后,可以点击该第二更新按钮,从而,数据库代理服务器便可以获取用户基于审计规则设置界面所发出的审计规则更新指令,并且,确定该审计规则更新指令用于更改为分布式数据库所设置的全部数据库代理服务器中的审计规则。这样,获取到用户基于审计规则设置界面所发出的审计规则更新指令的数据库代理服务器可以将该审计规则更新指令所指示的审计规则的更新内容记录到分布式数据库中的审计规则库表中,从而,为分布式数据库所设置的其他数据库代理服务器便可以定期从该审计规则库表中读取审计规则的更新内容,并根据该更新内容更新本地审计规则。

基于此,在该具体实现方式中,可以通过一次指令输入完成对全部数据库代理服务器的审计规则的更改,从而,可以节省审计规则的更改的时间,提高审计规则的更新效率。

相应的,可选的,用户在向数据库代理服务器发送审计规则更新指令时,可以指示该审计规则更新指令用于更改为分布式数据库所设置的部分数据库代理服务器中的审计规则。

例如,上述审计规则设置界面中可以包括:第三更新按钮和指定输入区域,该第三更新按钮为:用于发出更改为分布式数据库所设置的部分数据库代理服务器中的审计规则的指令的按钮,并且,用户可以在该指定输入区域输入要改变审计规则的数据库代理服务器的标识信息,则用户在输出新的审计规则和要改变审计规则的数据库代理服务器的标识信息后,可以点击该第三更新按钮,从而,数据库代理服务器便可以获取用户基于审计规则设置界面所发出的审计规则更新指令和用户在指定输入区域输入的标识信息,并且,确定该审计规则更新指令用于更改为分布式数据库所设置的部分数据库代理服务器中的审计规则。这样,获取到用户基于审计规则设置界面所发出的审计规则更新指令的数据库代理服务器可以将该审计规则更新指令所指示的审计规则更新内容及用户在指定输入区域输入的标识信息记录到分布式数据库中的审计规则库表中,从而,为分布式数据库所设置的其他数据库代理服务器便可以定期从该审计规则库表中读取审计规则的更新内容,并且,只有具有用户在指定输入区域输入的标识信息的数据库代理服务器可以根据该更新内容更新本地审计规则。

基于此,在该具体实现方式中,为分布式数据库所设置的多个数据库代理服务器中可以包括不同的审计规则,从而,可以同时实现对分布式数据库的多维度的全局审计。并且,可以通过一次指令输入完成对多个具有相同的审计规则的数据库代理服务器的审计规则的更改,从而,可以节省审计规则的更改的时间,提高审计规则的更新效率。

为了便于理解本发明实施例提供的一种数据库审计方法,如图8所示,为本发明实施例提供的一种数据库审计方法的一种具体实现方式的示意图。

其中,Proxy1和Proxy2是为分布式数据库所设置的多个数据库代理服务器中的任两个数据库代理服务器。并且,每个数据库代理服务器中包括:计算引擎和审计代理模块,其中,审计代理模块可以存储有审计规则,并且包括指定的缓存空间。

分布式数据库中的DB(database,数据库)1-DBN为分布式数据库中的各个存储节点;审计数据库集群中的DB1’-DBM为审计数据库集群中的各个存储服务器。

由于各个数据库代理服务器应用本发明实施例提供的一种数据库审计方法的方式是相同的,因此,下面以Proxy1为例对本发明实施例提供的一种数据库审计方法进行说明。1、SQL请求:租户向Proxy1发送针对分布式数据库的SQL(Structured Query Language,结构化查询语言)请求,其中,该SQL请求即为数据库访问请求。并且,Proxy1的计算引擎接收到SQL请求,对该SQL请求进行解析,得到解析结果,并生成执行计划。

2、SQL执行,返回结果:Proxy1的计算引擎可以继续执行上述所生成的执行计划,访问分布式数据库获取上述SQL请求的响应结果。

5、SQL请求返回:在得到上述SQL请求的响应结果后,Proxy1便可以直接向租户反馈SQL请求的响应结果。

3、审计规则:Proxy1的计算引擎从审计代理模块获取审计规则,并根据SQL请求的解析结果和审计规则,判断是否对所接收到的SQL请求进行审计。

4、审计内容集合:在步骤3的判断结果为是的情况下,Proxy1的计算引擎便可以获取SQL请求的解析结果中,与审计规则相匹配的待审计数据。

6、SQL审计内容合成入库:审计代理将接收到的待审计数据发送至审计数据库集群中的管理服务器,进而,管理服务器可以基于所接收到的待审计数据生成审计结果,并根据预设的存储规则,从DB1’-DBM中确定用于存储所述审计结果的目标存储服务器,将审计结果发送至该目标存储服务器。

基于此,应用本发明实施例提供的方案,由于用于全局审计的管理服务器可以与为分布式数据库所配置的多个数据库代理服务器通信连接,从而,该管理服务器可以获取到针对分布式数据库的全局待审计数据,从而,实现对分布式数据库的全局审计。这样,便可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

相应于上述本发明实施例提供的一种数据库审计方法,本发明实施例还提供了一种数据库审计装置。

其中,该数据库审计装置应用于为分布式数据库所配置的多个数据库代理服务器中的任一代理服务器,多个数据库代理服务器与预设的用于全局审计的管理服务器通信连接。

图5为本发明实施例提供的一种数据库审计装置的结构示意图,如图5所示,该装置可以包括如下模块:

请求判断模块510,用于在获取到针对所述分布式数据库的数据库访问请求和所述数据库访问请求的解析结果后,基于所述解析结果和预设的审计规则,判断是否对所述数据库访问请求进行审计;若判断结果为是,触发数据获取模块520;

所述数据获取模块520,用于获取所述解析结果中,与所述审计规则相匹配的待审计数据;

数据发送模块530,用于将所获取到的待审计数据发送至所述管理服务器,以使所述管理服务器基于所述多个数据库代理服务器发送的待审计数据,生成针对所述审计规则的审计结果。

以上可见,应用本发明实施例提供的方案,为了实现对各个租户针对分布式数据库的访问行为进行全局审计,可以设置与为分布式数据库所配置的多个数据库代理服务器通信连接,且用于全局审计的管理服务器。

这样,为分布式数据库所配置的任一数据库代理服务器在获取到针对分布式数据库的数据库访问请求和该数据库访问请求的解析结果后,便可以基于该解析结果和预设的审计规则,判断是否对该数据库访问请求进行审计,并在判断结果为是时,获取该解析结果中,与审计规则相匹配的待审计数据。进而,该数据库代理服务器便可以将所获取到的待审计数据发送至所设置的管理服务器。从而,管理服务器在接收到各个数据库代理服务器发送的待审计数据后,便可以基于各个数据库代理服务器发送的待审计数据,生成针对上述审计规则的审计结果。

基于此,应用本发明实施例提供的方案,由于用于全局审计的管理服务器可以与为分布式数据库所配置的多个数据库代理服务器通信连接,从而,该管理服务器可以获取到针对分布式数据库的全局待审计数据,从而,实现对分布式数据库的全局审计。这样,便可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

可选的,一种具体实现方式中,所述审计规则包括:审计条件和与所述审计条件对应的审计字段;其中,所述审计条件为针对指定字段所设置的、用于表征访问请求可被审计的条件,所述审计字段为在任一访问请求满足所述审计条件时,该访问请求的解析结果中待进行数据审计的字段;

所述请求判断模块510具体用于:判断所述解析结果中所述指定字段的字段值是否符合所述审计条件;

所述数据获取模块520具体用于:获取所述解析结果中,所述审计字段的字段值,作为待审计数据。

可选的,一种具体实现方式中,所述指定字段包括如下字段中的至少一个:租户、访问时间、库表、访问操作和数据库节点。

可选的,一种具体实现方式中,所述装置还包括:

数据缓存模块,用于在所述将所述待审计数据发送至所述管理服务器之前,在指定缓存空间中缓存所获取的待审计数据;

所述数据发送模块530具体用于:在所述指定缓存空间中所缓存的待审计数据满足预设的发送条件时,将所缓存的待审计数据发送至所述管理服务器;

其中,所述发送条件包括以下条件中的至少一个:

所缓存的待审计数据的数据量达到预设数据量;

距离上一次向所述管理服务器发送所缓存待审计数据的时长达到预设时长。

可选的,一种具体实现方式中,所述装置还包括:

界面输出模块,用于输出审计规则设置界面;

指令获取模块,用于获取用户基于所述审计规则设置界面所发出的审计规则更新指令;

规则更改模块,用于基于所述审计规则更新指令,更新所述审计规则。

相应于本发明实施例提供的一种数据库审计方法,本发明实施例还提供了一种数据库审计系统。

图6为本发明实施例提供的一种数据库审计系统的结构示意图。如图6所示,该系统包括:为分布式数据库所配置的多个数据库代理服务器610和用于全局审计的管理服务器620,多个数据库代理服务器610与管理服务器620通信连接;

其中,每一数据库代理服务器610,用于在获取到针对分布式数据库的数据库访问请求和数据库访问请求的解析结果后,基于解析结果和预设的审计规则,判断是否对数据库访问请求进行审计;若判断结果为是,则获取解析结果中,与审计规则相匹配的待审计数据;将所获取到的待审计数据发送至管理服务器620;

管理服务器620,用于基于多个数据库代理服务器610发送的待审计数据,生成针对审计规则的审计结果。

以上可见,应用本发明实施例提供的方案,为了实现对各个租户针对分布式数据库的访问行为进行全局审计,可以设置与为分布式数据库所配置的多个数据库代理服务器通信连接,且用于全局审计的管理服务器。

这样,为分布式数据库所配置的任一数据库代理服务器在获取到针对分布式数据库的数据库访问请求和该数据库访问请求的解析结果后,便可以基于该解析结果和预设的审计规则,判断是否对该数据库访问请求进行审计,并在判断结果为是时,获取该解析结果中,与审计规则相匹配的待审计数据。进而,该数据库代理服务器便可以将所获取到的待审计数据发送至所设置的管理服务器。从而,管理服务器在接收到各个数据库代理服务器发送的待审计数据后,便可以基于各个数据库代理服务器发送的待审计数据,生成针对上述审计规则的审计结果。

基于此,应用本发明实施例提供的方案,由于用于全局审计的管理服务器可以与为分布式数据库所配置的多个数据库代理服务器通信连接,从而,该管理服务器可以获取到针对分布式数据库的全局待审计数据,从而,实现对分布式数据库的全局审计。这样,便可以实现对各个租户针对分布式数据库的访问行为进行全局审计。

可选的,一种具体实现方式中,上述管理服务器620为预设的审计数据库集群中的服务器,审计数据库集群还包括:存储服务器;

管理服务器620,还用于将审计结果发送至存储服务器;

存储服务器,用于存储管理服务器620发送的审计结果。

在本具体实现方式中,上述管理服务器620在生成针对审计规则的审计结果后,可以进一步将该审计结果发送至存储服务器。从而,该存储服务器便可以存储所接收到的审计结果。

这样,可以实现对审计结果的保存,从而,在需要再次应用该审计结果时,可以直接从存储服务器中获取到该审计结果,保证后续应用的正常进行。

可选的,一种具体实现方式中,上述存储服务器的数量为多个;

上述管理服务器620,具体用于根据预设的存储规则,从多个存储服务器中确定用于存储审计结果的目标存储服务器,将审计结果发送至目标存储服务器。

在本具体实现方式中,预设的审计数据库集群中可以包括多个存储服务器,并且,可以预先设定存储规则,该存储规则用于指示各个存储服务器所存储的审计结果的类型。

例如,预设的审计数据库集群中包括3个存储服务器1-3;存储服务器1用于存储针对审计条件为租户A的审计规则的审计结果;存储服务器2用于存储针对审计条件为租户B的审计规则的审计结果;存储服务器3用于存储针对审计条件为租户C的审计规则的审计结果等。

从而,上述管理服务器620在生成针对审计规则的审计结果后,便可以根据预设的存储规则,从多个存储服务器中确定用于存储审计结果的目标存储服务器,进而,管理服务器620便可以将所生成的审计结果发送至目标存储服务器。这样,该目标存储服务器便可以存储所接收到的审计结果。

可选的,一种具体实现方式中,所述审计规则包括:审计条件和与所述审计条件对应的审计字段;其中,所述审计条件为针对指定字段所设置的、用于表征访问请求可被审计的条件,所述审计字段为在任一访问请求满足所述审计条件时,该访问请求的解析结果中待进行数据审计的字段;

每一数据库代理服务器610具体用于:判断所述解析结果中所述指定字段的字段值是否符合所述审计条件;若判断结果为是,则获取所述解析结果中,所述审计字段的字段值,作为待审计数据。

可选的,一种具体实现方式中,所述指定字段包括如下字段中的至少一个:租户、访问时间、库表、访问操作和数据库节点。

可选的,一种具体实现方式中,每一数据库代理服务器610,还用于在指定缓存空间中缓存所获取的待审计数据;

每一数据库代理服务器610具体用于:在所述指定缓存空间中所缓存的待审计数据满足预设的发送条件时,将所缓存的待审计数据发送至所述管理服务器;

其中,所述发送条件包括以下条件中的至少一个:

所缓存的待审计数据的数据量达到预设数据量;

距离上一次向所述管理服务器发送所缓存待审计数据的时长达到预设时长。

可选的,一种具体实现方式中,每一数据库代理服务器610,还用于输出审计规则设置界面;获取用户基于所述审计规则设置界面所发出的审计规则更新指令;基于所述审计规则更新指令,更新所述审计规则。

相应于上述本发明实施例提供的一种数据库审计方法,本发明实施例还提供了一种数据库代理服务器,所述数据库代理服务器是为分布式数据库所配置的代理服务器,且与预设的用于全局审计的管理服务器通信连接,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,

存储器703,用于存放计算机程序;

处理器701,用于执行存储器703上所存放的程序时,实现上述本发明实施例提供的任一数据库审计方法的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述本发明实施例提供的任一数据库审计方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述本发明实施例提供的任一数据库审计方法的步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、系统实施例、数据库代理服务器实施例、计算机可读存储介质实施例,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号