多版本并发控制下实现审计数据存储的方法和装置
文献发布时间:2023-06-19 09:23:00
技术领域
本公开涉及数据库技术领域,尤其涉及一种多版本控制下实现审计数据存储的方法和装置。
背景技术
数据库审计是对各种数据库访问和操作进行记录的工作,其可以在数据库出现安全事件后为事件追责定责提供依据,还可以对数据库操作的风险行为进行告警。
审计数据是数据库审计形成的数据,其相对于数据库中的普通表有如下特点:(1)审计数据不可回滚;(2)审计数据仅能新增(insert),不能更改(update)和删除(delete);(3)审计数据表不能删除(drop),只能转移。基于前述特点,审计数据需要和用户数据独立,也就是需要单独存储。
目前,在数据库部署多版本并发控制机制的前提下,审计数据如果以数据库中数据表的形式存储,需要遵循多版本并发控制规则,需要占用很多事务号并且定时提交。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种多版本并发控制下实现审计数据存储的方法和装置。
一方面,本申请提供一种多版本并发控制下实现审计数据存储的方法,包括:
在具有待插入审计数据的情况下,采用固定的事务号作为元组头与所述待插入审计数据进行拼接,形成审计数据元组;所述固定事务号为已经提交的事务号;
将所述审计数据元组存储在数据库中的审计数据表中。
可选地,采用固定的事务号作为元组头与所述待插入审计数据进行拼接,形成审计数据元组,包括:
调用元组只读插入接口,由所述元组只读插入接口采用固定的事务号作为元祖头与所述待插入审计数据进行拼接,形成所述审计数据元组。
可选地,所述方法还包括:对所述审计数据表中的审计数据进行分析,判断是否具有风险行为;
在具有所述风险行为的情况下,生成警告提示和/或,执行对应的控制操作。
可选地,将所述审计数据元组存储在数据库中的审计数据表中,包括:采用透明加密手段,将所述审计数据存储在所述审计数据表中。
另一方面,本申请提供一种多版本并发控制下实现审计数据存储的装置,包括:
审计数据元组形成单元,用于在具有待插入审计数据的情况下,采用固定的事务号作为元组头与所述待插入审计数据进行拼接,形成审计数据元组;所述固定事务号为已经提交的事务号;
存储单元,用于将所述审计数据元组存储在数据库中的审计数据表中。
可选地,所述审计数据元组形成单元包括调用元组只读插入接口,由所述元组只读插入接口采用固定的事务号作为元祖头与所述待插入审计数据进行拼接,形成所述审计数据元组。
可选地,所述装置还包括:风险判断单元,用于对所述审计数据表中的审计数据进行分析,判断是否具有风险行为;
告警单元,用于在所述风险判断单元在具有所述风险行为的情况下,生成警告提示和/或,执行对应的控制操作。
可选地,所述存储单元采用透明加密手段,将所述审计数据存储在所述审计数据表中。
本申请还提供一种数据库服务器,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如前所述方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如前所述方法的步骤。
本申请提供的多版本并发控制下实现审计数据存储的方法和装置,为待插入审计数据分配了含义已经提交的固定事务号,无需如现有技术一样申请事务号,因此使得所有的连接都可以看到固定事务号标记的审计数据元组,相应的审计数据元组也可以快速地插入到数据库的审计数据表中,也就无需如现有技术一样频繁地提交事务。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的实现审计数据存储的方法的流程图;;
图2是本申请实施例提供的实现审计数据存储的装置的结构示意图;
图3是本申请实施例提供的数据库服务器的结构示意图;
其中:11-判断单元,12-审计数据元组形成单元,13-存储单元,21-处理器、至22-存储器,23-通信接口,24-总线系统。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本申请实施例提供一种多版本并发控制下实现审计数据存储的方法,用于实现审计数据以数据表形式的快速存储,减少资源消耗。
图1是本申请实施例提供的实现审计数据存储的方法的流程图。如图1所示,本申请实施例提供的方法包括步骤S101-S103。
S101:判断是否具有待插入审计数据;如果有,执行S102;如果没有,等待并再次执行本步骤。
在数据库服务器运行过程中,当接收到用户输入的数据库操作语句,并通过词法分析和语法分析判定数据库操作语句合法后,数据库服务器即根据数据库操作语句生成对应的待插入审计数据。具体的,数据库服务器可以直接将数据库操作语句作为待插入审计数据。
S102:采用固定的事务号作为元组头与待插入审计数据进行拼接,形成审计数据元组。
步骤S102中,固定的事务号是为存储审计数据专门设定的事务号,在数据库服务器中其可以采用committedXid表示,其是一已经提交的事务号。固定事务号与多版本并发控制时针对业务数据表中元组操作时占用的事务号不同,可以独立地执行提交操作实现存储。
步骤S102中,采用固定的事务号作为元组头与待插入审计数据进行拼接,形成审计数据元组的过程,是将固定的事务号赋值给元组头的事务信息,以及将审计数据赋值给元组的数据体的过程。步骤S102执行后形成的审计数据元组被暂存在数据库服务器的内存中。
S103:将审计数据元组存储在数据库中的审计数据表中。
步骤S103将审计数据元组存储在审计数据表中,是将审计数据元组提交给存储操作装置,实现审计数据元组存储的过程。步骤S103是在步骤S102执行完成后立即执行。
因为步骤S102中采用的固定事务号,并且固定事务号为已经提交的事务号,而不是如对业务数据表中元组进行操作时占用的事务号形式执行,所以步骤S103可以立即执行。
因为在步骤S102中,数据库服务器为待插入审计数据分配了含义已经提交的固定事务号,所以无需如现有技术一样申请事务号,使得所有的连接都可以看到固定事务号标记的审计元组,相应的审计数据元组也可以快速地插入到数据库的审计数据表中,也就无需如现有技术一样频繁地提交事务。
在本申请实施例具体应用中,步骤S102具体为:调用元组只读插入(tuple_insert_readonly)接口,由元组只读数据插入接口采用固定的事务号作为元组头与待插入审计数据进行拼接,形成审计数据元组。元组只读插入接口针对审计数据专门设计的一数据调用接口,在此接口中,给审计数据元组的元组头赋值时直接采用固定的事务号,而不需要申请一新的事务号。
如前所述,因为本申请实施例中的审计数据采用数据表的形式存储,所以现有的针对数据表的一些操作均可以直接应用到审计数据表中。
其中,步骤S103中将审计数据元组存储在数据库中的审计数据表中,可以直接采用透明加密地手段将审计数据存储在数据表中;如此,可以保证审计数据存储的安全性。
在本申请实施例中,除了包括前述的步骤S101-S103外,还可以对存储在审计数据表中的数据进行分析,并判断审计数据对应的行为是否为风险行为;如果在具有审计数据对应的行为为风险行为,则可以生成警告提示,或者执行对应的控制操作。
因为审计数据采用数据表的形式存储,所以可以利用既有的表数据的查询优化能力,对审计数据表进行分析,继而确定对应的操作。
除了提供前述的多版本并发控制下实现审计数据存储的方法外,本申请实施例还提供一种多版本并发控制下实现审计数据存储的装置。
图2是本申请实施例提供的实现审计数据存储的装置的结构示意图。如图2所示,本申请实施例提供的装置包括判断单元11、审计数据元组形成单元12和存储单元13。
判断单元11用于判断是否具有待插入审计数据。
审计数据元组形成单元12用于在具有待插入审计数据的情况下,采用固定的事务号作为元组头与待插入审计数据进行拼接,形成审计数据元组。
在数据库服务器运行过程中中,当接收到用户输入的数据库操作语句,并通过词法分析和语法分析判定数据库操作语句合法后,数据库服务器即根据数据库操作语句生成对应的待插入审计数据。具体的,数据库服务器可以直接将数据库操作语句作为待插入审计数据。
固定的事务号是为存储审计数据专门设定的事务号,在数据库服务器中其可以采用committedXid表示,其是一已经提交的事务号。固定事务号与多版本并发控制时针对业务数据表中元组操作时占用的事务号不同,可以独立地执行提交操作实现存储。
采用固定的事务号作为元组头与待插入审计数据进行拼接,形成审计数据元组的过程,是将固定的事务号赋值给元组头的事务信息,以及将审计数据赋值给元组的数据体的过程。执行后形成的审计数据元组被暂存在数据库服务器的内存中。
存储单元13用于将审计数据元组存储在数据库中的审计数据表中。将审计数据元组存储在审计数据表中,是将审计数据元组提交给存储操作装置,实现审计数据元组存储的过程
因为采用的固定事务号并且固定事务号为已经提交的事务号,而不是如对业务数据表中元组进行操作时占用的事务号形式执行,所以存储单元13可以立即存储审计数据元组的操作。
因为数据库服务器为待插入审计数据分配了含义已经提交的固定事务号,所以无需如现有技术一样申请事务号,也就使得所有的连接都可以看到固定事务号标记的审计元组,相应的审计数据元组也可以快速地插入到数据库的审计数据表中,无需如现有技术一样频繁地提交事务。
在本申请实施例具体应用中,审计数据元组形成单元12包括调用元组只读插入(tuple_insert_readonly)接口,由元组只读数据插入接口采用固定的事务号作为元组头与待插入审计数据进行拼接,形成审计数据元组。元组只读插入接口针对审计数据专门设计的一数据调用接口,在此接口中,给审计数据元组的元组头赋值时直接采用固定的事务号,而不需要申请一新的事务号。
如前,因为本申请实施例中的审计数据采用数据表的形式存储,所以现有的针对数据表的一些操作均可以直接应用到审计数据表中。
本申请具体实施例中,存储单元13将审计数据元组存储在数据库中的审计数据表中,可以直接采用透明加密地手段将审计数据存储在数据表中;如此,可以保证审计数据存储的安全性。
装置除了包括前述的审计数据元组形成单元12和存储单元13外,还可以包括风险判断单元和告警单元。
风险判断单元用于对审计数据表中的审计数据进行分析,判断是否具有风险行为;告警单元用于在风险判断单元在具有风险行为的情况下,生成警告提示和/或执行对应的控制操作。因为审计数据采用数据表的行驶存储,所以可以利用既有的表数据的查询优化能力,对审计数据表进行分析,继而确定对应的操作。
除了提供前述的方法和装置外本申请实施例还提供一种多版本并发控制下实现审计数据存储的方法的数据库服务器。
图3是本申请实施例提供的数据库服务器的结构示意图。如图3所示,数据库服务器包括:至少一个处理器21、至少一个存储器22和至少一个通信接口23。电子设备中的各个组件通过总线系统24耦合在一起。通信接口23用于与外部设备之间的信息传输。可理解地,总线系统24用于实现这些组件之间的连接通信。总线系统34除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图3中将各种总线都标为总线系统24。
可以理解,本实施例中的存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
在一些实施方式中,存储器22存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用任务。实现本公开实施例提供的多版本并发控制下实现审计数据存储的方法程序可以包含在应用程序中。
在本公开实施例中,处理器21通过调用存储器22存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器21用于执行本申请提供的多版本并发控制下实现审计数据存储的方法的各个步骤。
处理器31可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器21可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的多版本并发控制下实现审计数据存储的方法步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器22,处理器21读取存储器22中的信息,结合其硬件完成方法的步骤。
本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如前所述多版本并发控制下实现审计数据存储的方法各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 多版本并发控制下实现审计数据存储的方法和装置
- 数据库的多版本并发控制方法、装置、服务器及存储介质