操作数据的存储方法和装置、电子设备和存储介质与流程

文档序号:25213309发布日期:2021-05-28 14:09阅读:40来源:国知局
本申请涉及数据处理领域,尤其涉及一种操作数据的存储方法和装置、电子设备和存储介质。
背景技术
::目前,在私有化环境下,数据库的提供方可以提供多用户机制,即,用户不同的业务线可以使用不同的账户操作同一数据库,用户会通过自己的帐号连接数据库并进行业务操作。为了便于排查哪些用户、哪些业务线进行了非法操作(比如,由于疏忽或者业务逻辑本身的问题导致误删除或者插入数据),数据库可以提供用于记录用户的所有操作的审计服务,上述审计服务可以是数据库本身提供的服务,或者,通过数据库插件提供的服务。然而,上述数据库提供的审计服务或者其他数据库审计插件虽然能够提供完整的审计数据(记录所有用户操作),但是对数据库本身性能影响较大。同时,如果记录所有用户操作,需要记录的数据量非常巨大,这在用户操作非常频繁的情况下会占据较大的磁盘空间。因此,相关技术中的操作数据的存储方式存在对数据库性能影响大、磁盘空间占用大的问题。技术实现要素:本申请提供了一种操作数据的存储方法和装置、电子设备和存储介质,以至少解决相关技术中的操作数据的存储方式存在对数据库性能影响大的问题。根据本申请实施例的一个方面,提供了一种操作数据的存储方法,包括:接收第一对象发送的目标操作指令,其中,所述目标操作指令用于指示对目标数据库执行目标业务操作;识别所述目标业务操作所属的操作类型;在所述目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,所述目标操作数据包含所述目标操作指令。可选地,识别所述目标业务操作所属的操作类型包括:对所述目标操作指令进行解析,识别出所述目标业务操作所属的操作类型,其中,所述操作类型包括所述目标操作类型以及除了所述目标操作类型以外的其他操作类型,所述目标操作类型是数据定义语言操作。可选地,对所述目标操作指令进行解析,识别出所述目标业务操作所属的操作类型包括:对所述目标操作指令进行解析,得到所述目标业务操作的描述信息;将所述目标业务操作的描述信息与属于所述目标操作类型的至少一个业务操作的描述信息进行匹配,识别出所述目标业务操作所属的操作类型。可选地,在将所述目标操作数据发送到所述存储节点进行存储之前,所述方法还包括:为所述目标操作指令添加目标注释信息,得到所述目标操作数据,其中,所述目标注释信息包括以下至少之一:所述第一对象的对象标识,与所述第一对象对应的网络地址。可选地,在将所述目标操作数据发送到所述存储节点进行存储之后,所述方法还包括:接收到第二对象发送第一获取请求,其中,所述第一获取请求用于请求获取所述存储节点中存储的、与所述第一对象对应的操作数据;响应所述第一获取请求,将所述存储节点中存储的、与所述第一对象对应的第一操作数据发送给所述第二对象,其中,所述第一操作数据包括所述目标操作数据。可选地,在将所述目标操作数据发送到所述存储节点进行存储之后,所述方法还包括:接收到第三对象发送第二获取请求,其中,所述第二获取请求用于请求获取所述存储节点中存储的、与所述目标业务操作对应的操作数据;响应所述第二获取请求,将所述存储节点存储的、与所述目标业务操作对应的第二操作数据发送给所述第三对象,其中,所述第二操作数据包括所述目标操作数据。可选地,在接收所述第一对象发送所述目标操作指令之前,所述方法还包括:向第四对象发送所述目标数据库的运行状态指示消息,其中,所述运行状态指示消息用于指示所述目标数据库当前的运行状态;接收所述第四对象响应所述运行状态指示消息返回的目标配置消息,其中,所述目标配置消息用于配置只存储指示的业务操作的操作类型为所述目标操作类型的操作指令。根据本申请实施例的另一个方面,还提供了一种操作数据的存储装置,包括:第一接收单元,用于接收第一对象发送的目标操作指令,其中,所述目标操作指令用于指示对目标数据库执行目标业务操作;识别单元,用于识别所述目标业务操作所属的操作类型;第一发送单元,用于在所述目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,所述目标操作数据包含所述目标操作指令。可选地,所述识别单元包括:识别模块,用于对所述目标操作指令进行解析,识别出所述目标业务操作所属的操作类型,其中,所述操作类型包括所述目标操作类型以及除了所述目标操作类型以外的其他操作类型,所述目标操作类型是数据定义语言操作。可选地,所述识别模块包括:解析子模块,用于对所述目标操作指令进行解析,得到所述目标业务操作的描述信息;识别子模块,用于将所述目标业务操作的描述信息与属于所述目标操作类型的至少一个业务操作的描述信息进行匹配,识别出所述目标业务操作所属的操作类型。可选地,所述装置还包括:添加单元,用于在将所述目标操作数据发送到所述存储节点进行存储之前,为所述目标操作指令添加目标注释信息,得到所述目标操作数据,其中,所述目标注释信息包括以下至少之一:所述第一对象的对象标识,与所述第一对象对应的网络地址。可选地,所述装置还包括:第二接收单元,用于在将所述目标操作数据发送到所述存储节点进行存储之后,接收到第二对象发送第一获取请求,其中,所述第一获取请求用于请求获取所述存储节点中存储的、与所述第一对象对应的操作数据;第二发送单元,用于响应所述第一获取请求,将所述存储节点中存储的、与所述第一对象对应的第一操作数据发送给所述第二对象,其中,所述第一操作数据包括所述目标操作数据。可选地,所述装置还包括:第三接收单元,用于在将所述目标操作数据发送到所述存储节点进行存储之后,接收到第三对象发送第二获取请求,其中,所述第二获取请求用于请求获取所述存储节点中存储的、与所述目标业务操作对应的操作数据;第三发送单元,用于响应所述第二获取请求,将所述存储节点存储的、与所述目标业务操作对应的第二操作数据发送给所述第三对象,其中,所述第二操作数据包括所述目标操作数据。可选地,所述装置还包括:第四发送单元,用于在接收所述第一对象发送所述目标操作指令之前,向第四对象发送所述目标数据库的运行状态指示消息,其中,所述运行状态指示消息用于指示所述目标数据库当前的运行状态;第四接收单元,用于接收所述第四对象响应所述运行状态指示消息返回的目标配置消息,其中,所述目标配置消息用于配置只存储指示的业务操作的操作类型为所述目标操作类型的操作指令。根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。在本申请实施例中,采用只记录特定操作类型的操作数据的方式,通过接收第一对象发送的目标操作指令,其中,目标操作指令用于指示对目标数据库执行目标业务操作;识别目标业务操作所属的操作类型;在目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,目标操作数据包含目标操作指令,由于只记录特定操作类型的操作数据,需存储的操作类型可以根据需要进行配置,从而可以实现减少所需存储的操作数据的目的,达到了降低操作数据存储对数据库性能的影响、减少对磁盘空间的占用的技术效果,进而解决了相关技术中的操作数据的存储方式存在对数据库性能影响大、磁盘空间占用大的问题。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是根据本申请实施例的一种可选的操作数据的存储方法的硬件环境的示意图;图2是根据本申请实施例的一种可选的操作数据的存储方法的流程示意图;图3是根据本申请实施例的另一种可选的操作数据的存储方法的流程示意图;图4是根据本申请实施例的一种可选的操作数据的存储装置的结构框图;图5是根据本申请实施例的一种可选的电子设备的结构框图。具体实施方式为了使本
技术领域
:的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本申请实施例的一个方面,提供了一种操作数据的存储方法。可选地,在本实施例中,上述操作数据的存储方法可以应用于如图1所示的由终端102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端102进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务。上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:wifi(wirelessfidelity,无线保真),蓝牙。终端102可以并不限定于为pc、手机、平板电脑等。本申请实施例的操作数据的存储方法可以由服务器104来执行,也可以由终端102来执行,还可以是由服务器104和终端102共同执行。其中,终端102执行本申请实施例的操作数据的存储方法也可以是由安装在其上的客户端来执行。以由服务器来执行本实施例中的操作数据的存储方法为例,图2是根据本申请实施例的一种可选的操作数据的存储方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:步骤s202,接收第一对象发送的目标操作指令,其中,目标操作指令用于指示对目标数据库执行目标业务操作。本实施例中的操作数据的存储方法可以应用于存储多个关联对象对同一数据库执行的业务操作的操作数据的场景,例如,在私有化环境下,用户的不同业务线可以使用不同的帐号操作同一数据库。对于目标数据库,目标数据库可以是sql(structuredquerylanguage,结构化查询语句)数据库,审计服务所记录的用户操作可以是sql操作。用户(与对象对应)可以使用对应的帐号和密码(动态密码)或者其他方式登录到其终端设备运行的客户端,上述客户端可以通过网络与目标数据库的服务端相连。服务端可以包括计算节点和存储节点,其中,计算节点用于执行控制逻辑,存储节点可以用于存储操作数据,还可以用于存储数据库中的数据表等(可以通过同一存储节点或者不同存储节点存储操作数据和数据表等)。在存储节点中可以通过日志文件存储操作数据,例如,binlog(二进制日志文件)。第一对象(对应于第一用户,通过第一帐号标识,第一帐号标识可以是第一用户的用户名)可以通过其终端设备上运行的第一客户端向服务端发送目标操作指令,该目标操作指令用于指示对目标数据库执行目标业务操作。目标数据库的计算节点可以接收第一对象发送的上述目标操作指令。步骤s204,识别目标业务操作所属的操作类型。对数据库执行的业务操作可以采用多种划分方式划分为多种操作类型,例如,可以按照具体的操作进行划分,比如,按照具体操作可以分为select(获取)、update(更新)、insert(插入)、delete(删除)、create(创建)、alter(修改)、drop(删除)、truncate(清空)等,也可以按照所对应的数据库语言进行划分,比如,对于sql,按照所采用的数据库语言可以分为dml(datamanipulationlanguage,数据操纵语言)、ddl(datadefinitionlanguage,数据定义语言)等。本实施例中提供的是一种更加轻量级的审计实现方式,通过只记录部分操作类型的操作数据,从而可以减少用户操作的记录过程对数据库性能的影响,同时可以减少操作数据所占用的磁盘空间。计算节点上可以预先配置需存储的业务操作的操作类型,即,目标操作类型,不属于目标操作类型的业务操作可以属于其他操作类型。比如,可以将create、drop、truncate等非频繁操作语句配置为需记录的业务操作的操作类型,还可以将ddl操作配置为需记录的业务操作的操作类型,即,所有的ddl操作均配置为需记录的业务操作的操作类型。在接收到上述目标操作指令之后,计算节点可以对目标业务操作进行分析,识别出目标业务操作所属的操作类型。比如,目标操作指令为“createtabletest”,创建名为test的数据表,目标业务操作可以是创建表。如果操作类型按照具体的操作划分,目标业务操作所属的操作类型为create,如果操作类型按照所采用的数据库语言划分,目标业务操作所属的操作类型可以为ddl。步骤s206,在目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,目标操作数据包含目标操作指令。如果目标业务操作所属的操作类型为预先配置的、需存储操作数据的操作类型,即,目标操作类型,则计算节点可以根据目标操作指令确定目标操作数据,目标操作数据除了包含目标操作指令以外,还可以包含其他需存储的数据,比如,用户标识信息等。在得到目标操作数据之后,计算节点可以将目标操作数据发送到存储节点,存储节点可以将目标操作数据存储到日志文件中,存储到的日志文件可以是二进制日志文件(binlog)。通过上述步骤s202至步骤s206,接收第一对象发送目标操作指令,其中,目标操作指令用于指示对目标数据库执行目标业务操作;识别目标业务操作所属的操作类型;在目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,目标操作数据包含目标操作指令,解决了相关技术中的操作数据的存储方式存在对数据库性能影响大、磁盘空间占用大的问题,降低了操作数据存储对数据库性能的影响,减少了对磁盘空间的占用。作为一种可选的实施例,在接收第一对象发送目标操作指令之前,上述方法还包括:s11,向第四对象发送目标数据库的运行状态指示消息,其中,运行状态指示消息用于指示目标数据库当前的运行状态;s12,接收第四对象响应运行状态指示消息返回的目标配置消息,其中,目标配置消息用于配置只存储指示的业务操作的操作类型为目标操作类型的操作指令。为了提高记录的用户数据的完整性,可以根据数据库的运行状态确定是记录所有用户操作还是部分用户操作。计算节点(也可以是其他节点)可以根据第四对象的请求、或者在其他触发条件满足时触发向第四对象发送目标数据库的运行状态指示消息,运行状态指示消息用于指示目标数据库当前的运行状态,上述运行状态可以体现出数据库当前的资源占用情况(比如,内、外存占用情况)。第四对象(对应于第四帐号)可以通过其终端设备上运行的第四客户端接收到上述运行状态指示消息,根据运行状态指示消息确定出目标数据库当前的运行状态,并通过第四客户端的显示界面或者其他方式(例如,通知消息,即时通信应用中的会话消息)向第四对象提示目标数据库当前的运行状态,并获取第一对象的配置操作,该配置操作用于指示审计服务的模式,即,记录所有用户操作,记录部分用户操作。该配置操作可以是点击操作、滑动操作、语音输入操作、或者其他类型的操作。如果配置操作用于指示只记录部分的用户操作,响应配置操作,第四客户端可以生成目标配置消息,该目标配置消息用于配置只存储指示业务操作的操作类型为目标操作类型的操作指令,并将目标配置消息发送到计算节点。响应接收到的目标配置消息,计算节点可以确定出审计服务所采用的方式,即,只存储指示的业务操作的操作类型为目标操作类型的操作指令,并按照审计服务所采用的方式,对接收到的操作指令所指示的业务操作的操作类型进行识别,以及按照所指示的业务操作的操作类型判定是否需要存储该操作指令。通过本实施例,通过与用户进行交互,从而方便用户根据数据库的当前运行状态配置审计服务所采用的方式,可以提高审计服务配置的灵活性,以及保证审计数据的完整性。作为一种可选的实施例,识别目标业务操作所属的操作类型包括:s21,对目标操作指令进行解析,识别出目标业务操作所属的操作类型,其中,操作类型包括目标操作类型以及除了目标操作类型以外的其他操作类型,目标操作类型是数据定义语言操作。为了能够对非法操作(比如,由于疏忽或者业务逻辑本身的问题导致误删除或者插入数据)进行有效监督,计算节点可以对目标操作指令进行解析,识别出目标业务操作所属的操作类型,操作类型可以按照是否改变了数据库中存储的数据来区分。例如,目标操作类型可以是改变了数据库中存储的数据的操作类型,可以包括但不限于以下至少之一:update,insert,delete,create,alter,drop,truncate。为了进一步减少审计服务对于数据库性能的影响,操作类型也可以按照是否是ddl操作来区分。例如,目标操作类型可以是ddl操作(比如,createtable,droptable,truncatetable等非频繁操作语句)。可选地,在数据库的磁盘资源充足时,也可以同时记录ddl操作和dml操作,还可以记录其他数据库语言的操作。通过本实施例,通过配置只存储ddl操作的操作数据,在保证对数据库的非法操作进行有效监督的同时,可以减少审计服务对于数据库性能的影响。作为一种可选的实施例,对目标操作指令进行解析,识别出目标业务操作所属的操作类型包括:s31,对目标操作指令进行解析,得到目标业务操作的描述信息;s32,将目标业务操作的描述信息与属于目标操作类型的至少一个业务操作的描述信息进行匹配,识别出目标业务操作所属的操作类型。在识别目标业务操作所属的操作类型时,可以预先配置属于目标操作类型的至少一个业务操作,比如,目标操作类型为ddl操作,属于目标操作类型的至少一个业务操作可以包括:createtable,droptable,truncatetable等。计算节点可以首先对目标操作指令进行解析,确定出目标业务操作的描述信息,业务操作的描述信息可以包含一种或者多种,比如,业务操作的操作信息、操作客体(比如,数据库、表、图等)信息等。在解析出目标业务操作的描述信息之后,计算节点可以将目标业务操作的描述信息与属于目标操作类型的至少一个业务操作的描述信息进行匹配,从而确定出属于目标操作类型的至少一个业务操作中是否有与目标业务操作匹配的业务操作,如果匹配到的业务操作,则可以确定目标业务操作属于目标操作类型,否则,确定目标业务操作属于其他操作类型。在将目标业务操作的描述信息与属于目标操作类型的某一个业务操作的描述信息进行匹配时,执行的可以是操作信息与操作信息之间的匹配,或者,操作信息与操作信息之间、以及操作客体与操作客体之间的匹配,还可以是其他类型的描述信息之间的匹配,本实施例中对此不作限定。例如,目标操作指令为“createtabletest”,解析出的目标业务操作的描述信息可以包括:操作信息“create”,操作客体信息“table”,如果属于目标操作类型的某一个业务操作的描述信息为“create”,则可以确定目标业务操作属于目标操作类型。通过本实施例,通过配置属于目标操作类型的业务操作的描述信息,并使用当前业务操作的描述信息与配置的业务操作的描述信息进行匹配,可以提高业务识别的准确性和效率。作为一种可选的实施例,在将目标操作数据发送到存储节点进行存储之前,上述方法还包括:s41,为目标操作指令添加目标注释信息,得到目标操作数据,其中,目标注释信息包括以下至少之一:第一对象的对象标识,与第一对象对应的网络地址。为了得到目标操作数据,计算节点可以为目标操作指令添加目标注释信息,添加的目标注释信息可以用于描述第一对象,可以包含但不限于以下至少之一:第一对象的对象标识(例如,用户名),与第一对象对应的网络地址(例如,ip地址)。例如,用户原sql语句为“droptabletest”,则添加注释之后,该sql语句被改写为“droptabletest/*127.0.0.1@admin*/”,其中,“127.0.0.1”为ip地址,“@admin”为用户名。通过本实施例,通过为操作指令添加注释信息,以标识与操作指令对应的对象,以方便定位非法操作的对象,提高非法操作的排查效率。需要说明的是,除了提供审计服务,对于目标操作指令,计算节点还可以控制对目标数据库执行目标业务操作,执行的过程可以参考相关技术,本实施例中在此不做赘述。可选地,在识别目标业务操作所属的操作类型之后,在目标业务操作所属的操作类型为除了目标操作类型以外的其他操作类型的情况下,可以控制对目标数据库执行目标业务操作,并禁止将目标操作指令发送到存储节点进行存储。相关人员在进行非法操作排查时,可以通过获取请求的方式从存储节点拉取满足请求条件的操作数据。作为一种可选的实施例,在将目标操作数据发送到存储节点进行存储之后,上述方法还包括:s51,接收到第二对象发送第一获取请求,其中,第一获取请求用于请求获取存储节点中存储的、与第一对象对应的操作数据;s52,响应第一获取请求,将存储节点中存储的、与第一对象对应的第一操作数据发送给第二对象,其中,第一操作数据包括目标操作数据。第二对象(对应于第二用户,通过第二帐号标识,第二帐号标识可以是第二用户的用户名)可以通过其终端设备上运行的第二客户端向服务端发送目第一获取请求,该第一获取请求用于请求获取存储节点中存储的、与第一对象对应的操作数据。目标数据库的计算节点可以接收第二对象发送的上述第一获取请求。响应该第一获取请求,计算节点可以从存储节点拉取满足请求条件(与第一对象对应)的操作数据,即,第一操作数据,拉取到的第一操作数据中包含有前述目标操作数据,并将拉取到的第一操作数据发送给第二对象(第二客户端)。第一操作数据可以用于排查第一对象是否执行了非法操作。第二客户端在接收到第一操作数据之后,可以通过其显示界面显示接收到的第一操作数据,以便于第二对象查看第一操作数据;或者,也可以通过提示信息提示第二对象已接收到第一操作数据,由第二对象在需要时通过执行相应的操作来打开第一操作数据。通过本实施例,通过从存储节点获取特定对象的操作数据,以排查该对象是否进行了非法操作,可以提高非法操作排查的效率。作为一种可选的实施例,在将目标操作数据发送到存储节点进行存储之后,上述方法还包括:s61,接收到第三对象发送第二获取请求,其中,第二获取请求用于请求获取存储节点中存储的、与目标业务操作对应的操作数据;s62,响应第二获取请求,将存储节点存储的、与目标业务操作对应的第二操作数据发送给第三对象,其中,第二操作数据包括目标操作数据。第三对象(对应于第三用户,通过第三帐号标识,第三帐号标识可以是第三用户的用户名)可以通过其终端设备上运行的第三客户端向服务端发送目第二获取请求,该第二获取请求用于请求获取存储节点中存储的、与目标业务操作对应的操作数据。目标数据库的计算节点可以接收第三对象发送的该第二获取请求。响应该第二获取请求,计算节点可以从存储节点拉取满足请求条件(与目标业务操作对应)的操作数据,即,第二操作数据,拉取到的第二操作数据中包含有前述目标操作数据,并将拉取到的第二操作数据发送给第三对象(第三客户端)。第二操作数据可以用于排查是否有用户执行了非法的目标业务操作。第三客户端在接收到第二操作数据之后,可以通过其显示界面显示接收到的第二操作数据,以便于第三对象查看第二操作数据;或者,也可以通过提示信息提示第三对象已接收到第二操作数据,由第三对象在需要时通过执行相应的操作来打开第二操作数据。通过本实施例,通过从存储节点获取特定业务操作的操作数据,以排查是否有用户执行了非法的该特定业务操作,可以提高非法操作排查的效率。需要说明的是,除了执行审计服务,对于用户的操作指令,可选地,在识别所述目标业务操作所属的操作类型之后,在所述目标业务操作所属的操作类型为除了所述目标操作类型以外的其他操作类型的情况下,控制对所述目标数据库执行所述目标业务操作,并禁止将所述目标操作指令发送到所述存储节点进行存储。下面结合可选示例对本申请实施例中的操作数据的存储方法进行解释说明。在本示例中,目标操作类型为ddl操作,网络地址为ip地址。如图3所示,本可选示例中的操作数据的存储方法的流程可以包括以下步骤:步骤s302,数据库的计算节点接收用户的sql语句。步骤s304,对用户的sql语句进行语法分析,识别出用户的sql语句所属的类型。识别sql语句(用户操作)的类型可分为:dml语句和ddl语句,数据库所提供的审计服务只记录用户进行的ddl操作。步骤s306,如果用户的sql语句所属的类型为ddl语句,对识别出的sql语句添加注释,将改写后的sql语句发往存储节点,记录在其上的binlog中。将进行ddl操作的用户名和ip地址通过注释的方式添加到sql语句中,从而改写sql语句,并将改写的sql语句记录在存储节点的binlog中,完成用户名和操作ip的审计存储。通过本示例,由于只记录用户进行的ddl操作,可以减少审计服务对数据库性能的影响、以及对磁盘空间的占用;使用数据库本身的binlog机制存储审计操作,避免另外开启服务,减少维护服务的成本。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom(read-onlymemory,只读存储器)/ram(randomaccessmemory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。根据本申请实施例的另一个方面,还提供了一种用于实施上述操作数据的存储方法的操作数据的存储装置。图4是根据本申请实施例的一种可选的操作数据的存储装置的结构框图,如图4所示,该装置可以包括:第一接收单元402,用于接收第一对象发送目标操作指令,其中,目标操作指令用于指示对目标数据库执行目标业务操作;识别单元404,与第一接收单元402相连,用于识别目标业务操作所属的操作类型;第一发送单元406,与识别单元404相连,用于在目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,目标操作数据包含目标操作指令。需要说明的是,该实施例中的第一接收单元402可以用于执行上述步骤s202,该实施例中的识别单元404可以用于执行上述步骤s204,该实施例中的第一发送单元406可以用于执行上述步骤s206。通过上述模块,接收第一对象发送目标操作指令,其中,目标操作指令用于指示对目标数据库执行目标业务操作;识别目标业务操作所属的操作类型;在目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,目标操作数据包含目标操作指令,解决了相关技术中的操作数据的存储方式存在对数据库性能影响大、磁盘空间占用大的问题,降低了操作数据存储对数据库性能的影响,减少了对磁盘空间的占用。作为一种可选的实施例,识别单元404包括:识别模块,用于对目标操作指令进行解析,识别出目标业务操作所属的操作类型,其中,操作类型包括目标操作类型以及除了目标操作类型以外的其他操作类型,目标操作类型是数据定义语言操作。作为一种可选的实施例,识别模块包括:解析子模块,用于对目标操作指令进行解析,得到目标业务操作的描述信息;识别子模块,用于将目标业务操作的描述信息与属于目标操作类型的至少一个业务操作的描述信息进行匹配,识别出目标业务操作所属的操作类型。作为一种可选的实施例,上述装置还包括:添加单元,用于在将目标操作数据发送到存储节点进行存储之前,为目标操作指令添加目标注释信息,得到目标操作数据,其中,目标注释信息包括以下至少之一:第一对象的对象标识,与第一对象对应的网络地址。作为一种可选的实施例,上述装置还包括:第二接收单元,用于在将目标操作数据发送到存储节点进行存储之后,接收到第二对象发送第一获取请求,其中,第一获取请求用于请求获取存储节点中存储的、与第一对象对应的操作数据;第二发送单元,用于响应第一获取请求,将存储节点中存储的、与第一对象对应的第一操作数据发送给第二对象,其中,第一操作数据包括目标操作数据。作为一种可选的实施例,上述装置还包括:第三接收单元,用于在将目标操作数据发送到存储节点进行存储之后,接收到第三对象发送第二获取请求,其中,第二获取请求用于请求获取存储节点中存储的、与目标业务操作对应的操作数据;第三发送单元,用于响应第二获取请求,将存储节点存储的、与目标业务操作对应的第二操作数据发送给第三对象,其中,第二操作数据包括目标操作数据。作为一种可选的实施例,上述装置还包括:第四发送单元,用于在接收第一对象发送目标操作指令之前,向第四对象发送目标数据库的运行状态指示消息,其中,运行状态指示消息用于指示目标数据库当前的运行状态;第四接收单元,用于接收第四对象响应运行状态指示消息返回的目标配置消息,其中,目标配置消息用于配置只存储指示的业务操作的操作类型为目标操作类型的操作指令。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。根据本申请实施例的又一个方面,还提供了一种用于实施上述操作数据的存储方法的电子设备,该电子设备可以是服务器、终端、或者其组合。图5是根据本申请实施例的一种可选的电子设备的结构框图,如图5所示,包括处理器502、通信接口504、存储器506和通信总线508,其中,处理器502、通信接口504和存储器506通过通信总线508完成相互间的通信,其中,存储器506,用于存储计算机程序;处理器502,用于执行存储器506上所存放的计算机程序时,实现如下步骤:s1,接收第一对象发送目标操作指令,其中,目标操作指令用于指示对目标数据库执行目标业务操作;s2,识别目标业务操作所属的操作类型;s3,在目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,目标操作数据包含目标操作指令。可选地,在本实施例中,上述的通信总线可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线、或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括ram,也可以包括非易失性存储器(non-volatilememory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。作为一种示例,上述存储器506中可以但不限于包括上述操作数据的存储装置中的第一接收单元402、识别单元404以及第一发送单元406。此外,还可以包括但不限于上述操作数据的存储装置中的其他模块单元,本示例中不再赘述。上述处理器可以是通用处理器,可以包含但不限于:cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。本领域普通技术人员可以理解,图5所示的结构仅为示意,实施上述操作数据的存储方法的设备可以是终端设备。图5其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示的不同的配置。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、rom、ram、磁盘或光盘等。根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本申请实施例中上述任一项操作数据的存储方法的程序代码。可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:s1,接收第一对象发送目标操作指令,其中,目标操作指令用于指示对目标数据库执行目标业务操作;s2,识别目标业务操作所属的操作类型;s3,在目标业务操作所属的操作类型为目标操作类型的情况下,将目标操作数据发送到存储节点进行存储,其中,目标操作数据包含目标操作指令。可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、rom、ram、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上所述仅是本申请的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1