掌桥专利:专业的专利平台
掌桥专利
首页

一种数据库操作认证处理方法和装置

文献发布时间:2024-04-18 19:57:31


一种数据库操作认证处理方法和装置

技术领域

本申请涉及到数据库领域,具体而言,涉及一种数据库操作认证处理方法和装置。

背景技术

数据库一般分为数据库客户端和服务端,服务端安装在服务器上,服务端用于保存各种保存在数据库中的数据,其中,也包括能够访问数据库中的数据的用户名和密码,这些用户名和密码能够登录到数据库服务端上,并且,不同用户名对应的用户也有不同的权限,数据库使用者在使用用户名登录到服务端上之后,根据该用户名对应权限来对数据库中的数据进行操作。

例如,数据库的用户名通常情况下包括root用户,该用户的权限最大,一般情况下只有只有相应级别的数据库管理员使用该用户名。又例如,数据库的用户还可以包括user用户,这个用户的权限受限,因此,可以开放给所有的数据库管理员(也可以称为数据库操作方,简称为操作方)使用。

数据库管理员或者数据库使用者在被告知用户名和密码之后,就可以使用该用户名和密码通过数据库客户端登录到数据库并进行数据库操作。例如,数据库管理员A使用root用户名和密码登录到数据库进行操作,数据库管理员B也可以使用root用户名和密码登录到数据库进行操作。因此,当通过数据库客户端登录到数据库服务端时,只能知道是使用root用户登录的,并不知道是数据库管理员A使用的root用户名还是由数据库管理员B使用的root用户名登录的数据库服务端。

因此,在相关技术中的数据库客户端在访问数据库时,无论是数据库审计还是数据库防火墙等产品均无法知道进行操作的一方是谁,只知道操作的数据库用户。这样就无法对操作方进行控制,有可能给数据库带来隐患。

发明内容

本申请实施例提供了一种数据库操作认证处理方法和装置,以至少解决相关技术中无法识别数据库操作方所带来的安全隐根据本申请的一个方面,提供了一种数据库操作认证处理方法,包括:确定数据库的操作方发起调用数据库客户端的操作患的问题。

,其中,所述数据库客户端用于访问数据库服务端,并对数据库服务端中的数据进行维护;调用认证工具,其中,所述认证工具用于让所述操作方使用预先分配的认证用户进行登录;在通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功之后,允许所述操作方通过所述数据库客户端使用数据库用户名登录到数据库服务端进行操作;记录所述认证用户在登录到所述数据库客户端之后所进行的数据库操作信息。

可选地,通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功包括:通过认证工具调用所述认证用户对应的证书,并将所述证书的证书信息和所述认证用户的用户名和密码发送给运维管理平台;在所述认证工具接收到所述运维管理平台的认证成功信息之后,确定所述操作方通过所述预先分配的认证用户进行登录成功。

可选地,所述方法还包括:通过所述认证工具在所述运维管理平台为所述操作方注册认证用户,在注册成功之后,通过上述认证工具保存所述运维管理平台发送的所述认证用户对应的认证证书。

可选地,所述方法还包括:在确定所述操作方通过所述数据库客户端操作所述数据库服务端结束之后,通过所述认证工具向所述运维管理平台注销所述认证用户。

根据本申请的另一方面,还提供了一种数据库操作认证处理装置,包括:确定模块,用于确定数据库的操作方发起调用数据库客户端的操作,其中,所述数据库客户端用于访问数据库服务端,并对数据库服务端中的数据进行维护;调用模块,用于调用认证工具,其中,所述认证工具用于让所述操作方使用预先分配的认证用户进行登录;允许模块,用于在通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功之后,允许所述操作方通过所述数据库客户端使用数据库用户名登录到数据库服务端进行操作;记录模块,用于记录所述认证用户在登录到所述数据库客户端之后所进行的数据库操作信息。

可选地,通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功包括:通过认证工具调用所述认证用户对应的证书,并将所述证书的证书信息和所述认证用户的用户名和密码发送给运维管理平台;在所述认证工具接收到所述运维管理平台的认证成功信息之后,确定所述操作方通过所述预先分配的认证用户进行登录成功。

可选地,还包括:注册模块,用于通过所述认证工具在所述运维管理平台为所述操作方注册认证用户,在注册成功之后,通过上述认证工具保存所述运维管理平台发送的所述认证用户对应的认证证书。

可选地,还包括:注销模块,用于在确定所述操作方通过所述数据库客户端操作所述数据库服务端结束之后,通过所述认证工具向所述运维管理平台注销所述认证用户。

根据本申请的另一方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。

根据本申请的另一方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。

在本申请实施例中,采用了确定数据库的操作方发起调用数据库客户端的操作,其中,所述数据库客户端用于访问数据库服务端,并对数据库服务端中的数据进行维护;调用认证工具,其中,所述认证工具用于让所述操作方使用预先分配的认证用户进行登录;在通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功之后,允许所述操作方通过所述数据库客户端使用数据库用户名登录到数据库服务端进行操作;记录所述认证用户在登录到所述数据库客户端之后所进行的数据库操作信息。通过本申请解决了相关技术中无法识别数据库操作方所带来的安全隐患的问题,从而减少了数据库的安全隐患。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的数据库操作认证处理方法的流程图;

图2是根据本申请实施例的两个线程交互的流程图;

图3是根据本申请实施例的证书下载的流程图;

图4是根据本申请实施例的账户登录的流程图;以及,

图5是根据本申请实施例的用户注销的流程图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在如下实施方式中,提供了一种运维管控安全防护认证工具,该功能能够针对运维过程进行安全加固,能够对运维人员(即操作方)的身份、运维的工具进行识别和校验。作为一种可选的功能,该认证工具还能够对数据库密码进行加密保护,同时拦截一切不可信的运维操作。

在以下实施方式中,需要能够在数据库客户端访问数据库的过程中,对该访问操作的操作方进行规则控制和用户识别,所以首先要进行操作方的信息获取,在以下实施方式中可以通过在客户端主机上的驻留进程来进行对操作方的识别和与控制端进行交互,只有符合在运维管控上注册的登录方式才能够连接数据库。

考虑到相关技术中,数据库安全类产品在解析数据库协议时,一些协议没有客户端的主机、客户端操作系统的用户等信息,如果要对这些信息进行规则配置,是无法做到符合预期的,为了能更好的识别当前的访问操作,在以下的可选实施例中,通过识别出当前设备上的操作,来针对不同的人和不同的事,以及不同的时间去配置规则,以下实施例中通过认证工具来实现如上的功能,下面先对认证工具进行介绍,需要说明的是,以下认证工具的实现方式是一种可选的实现方式,其他的实现方式也可以同样达到相同的功能和效果。

在以下实施方式中,每个操作方均需要注册一个独立的用户或者账户(以下简称为用户)才能够登录数据库客户端,在注册账户的时候,可以根据用户或者账户的注册信息为该用户生成一个证书,该证书有唯一与用户对应的序列号,该证书会被保存操作方本地,当操作方需要通过数据库客户端访问数据库的时候,会调用认证工具与运维管控平台进行验证,在对操作方登录使用的用户验证成功之后,记录该用户的用户名以及操作数据库的相关信息,这样就可以区分是哪个操作方通过数据库客户端来访问数据库的。

图1是根据本申请实施例的数据库操作认证处理方法的流程图,如图1所示,下面对图1中的方法所涉及到的步骤进行说明。

步骤S102,确定数据库的操作方发起调用数据库客户端的操作,其中,所述数据库客户端用于访问数据库服务端,并对数据库服务端中的数据进行维护;

步骤S104,调用认证工具,其中,所述认证工具用于让所述操作方使用预先分配的认证用户进行登录;

步骤S106,在通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功之后,允许所述操作方通过所述数据库客户端使用数据库用户名登录到数据库服务端进行操作;需要说明的是,为了区分两个用户名,将认证工具使用的用户为认证用户,将数据库使用的用户为数据库用户;

步骤S108,记录所述认证用户在登录到所述数据库客户端之后所进行的数据库操作信息。

作为一个可选的实施方式,记录所述认证用户登录到所述认证工具上的登录时间,获取所述数据库客户端所进行的数据库操作的操作时间,将所述登录时间与所述操作时间相匹配得到所述数据库操作对应的认证用户。

通过上述步骤,可以区分使用相同数据库用户的不同操作方,为规定操作方的权限提供了可能,解决了相关技术中无法识别数据库操作方所带来的安全隐患的问题,从而减少了数据库的安全隐患。

在上述步骤中,通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功包括:

通过认证工具调用所述认证用户对应的证书,并将所述证书的证书信息和所述认证用户的用户名和密码发送给运维管理平台;

在所述认证工具接收到所述运维管理平台的认证成功信息之后,确定所述操作方通过所述预先分配的认证用户进行登录成功。

需要说明的是,上述方法还可以包括:通过所述认证工具在所述运维管理平台为所述操作方注册认证用户,在注册成功之后,通过上述认证工具保存所述运维管理平台发送的所述认证用户对应的认证证书。

作为一个可选的实施方式,在所述运维管理平台进行注册的时候,获取所述认证工具所使用的IP地址,所述运维管理平台预先配置了不同IP地址段在注册认证用户时所对应的数据库操作权限,所述运维管理平台根据所述IP地址所在的地址段在所述认证用户注册成功之后,为所述认证用户分配权限。在记录所述认证用户在登录到所述数据库客户端之后所进行的数据库操作信息时,尤其要记录所述认证用户做出的超过其对应权限的数据库操作的信息,该信息可以发送给相关管理人员,确定所述认证用户的操作是否违规。

可选的,上述方法还可以包括:在确定所述操作方通过所述数据库客户端操作所述数据库服务端结束之后,通过所述认证工具向所述运维管理平台注销所述认证用户。

作为一个可选的实施方式,所述认证工具获取所述数据库客户端访问所述数据库服务端的端口号和网络地址,获取通过该端口号和网络地址中的数据库客户端与所述数据库服务端之间的网络传输流量,如果在预定时间段内网络传输流量低于阈值,则断开所述数据库客户端与所述数据库服务端之间的连接,并且,注销所述认证用户在所述认证工具上的登录。

下面结合一个可选的实施方式进行说明。首先对整体数据处理架构进行说明,在如下数据处理架构中,可以包括两个线程,分别是用户界面(简称为ui)线程和通信管道(socket)线程,下面对这两个线程分别进行说明。

ui线程负责获取用户界面的输出,放入相应队列中,通过信号量通知socket线程,之后再通过信号通知,从队列中获取相应数据,该过程是串联的,在等待数据的时候,需要先等待自己的信号量,再去缓冲区获取数据,所以ui线程是同步的。

socket线程首先接收到信号,获取相应的请求,并进行相应处理,再继续等待相应的数据,将数据与刚才处理的数据类型进行封装,设置ui信号,并将数据放入相应队列中,以便ui线程进行获取。由于socket线程不仅接受请求还会接受数据,所以他处理一次请求和应答是异步的。

采用信号量的方式,是为了能够更快地处理相应的请求;如果采用等待事件轮询的方式,效率会有所降低,在通讯过程中,数据添加相应的数据类型,这样socket线程才能根据相应的类型处理相应的数据。

图2是根据本申请实施例的两个线程交互的流程图,如图2所示,UI线程首先获取界面的输入,然后将数据添加到相应的数据类型并进行封装,然后将数据放入socket线程队列中,然后设置socket线程信号量,然后等待UI线程信号量,从UI线程队列中获取数据,然后返回给主界面。socket线程判断是否有信号到达,如果有信号到达则获取队列中的数据,根据数据类型对数据进行相应处理,确定是否有运维管控数据,如果有运维管控数据,则将数据添加到相应的数据类型并进行封装,然后将封装后的数据放入到UI线程队列中,然后设置UI线程信号量,再设置UI线程信号量,之后进入到休眠,并开始发送心跳信息。如果没有运维管控数据,则也进入休眠,并开始发送心跳消息。如果没有信号达到,则再等待一个时间超时之后,触发信号量超时,进入到运维管控数据判断是否存在的步骤。

在使用认证工具时,申请人需要与身份认证信息进行相对应,身份认证主要通过证书的校验。申请人在运维管控平台进行账号注册并创建证书与账号绑定,之后在登录认证工具之前,需要先进行证书下载,输入对应的账户密码将证书序列号保存至本地,之后选择证书登录即可看到相应的账号和证书选项。证书序列号的生成采用相应算法计算生成,首先获取当前机器的mac地址的哈希和CPU的标识信息的值(id值);再获取从格林威治标准时间0点到当前时间的纳秒数,最后将所有计算的值与两个字节的随机数进行组合计算,生成最终的证书序列号。在用户注册时选择当前证书后,该证书便唯一绑定该用户。也可以在编辑用户信息时,更改当前证书,那么原来的证书与之解绑,可以重新和其他用户进行绑定。

图3是根据本申请实施例的证书下载的流程图,如图3所示,触发证书下载流程,检查本地证书是否存在,如果是,则提示是否覆盖本地证书,如果不需要覆盖,则返回主界面,如果需要覆盖,则向运维平台传输当前的用户和密码信息,然后接收认证工具的信息并进行解析,校验用户是否存在,如果不存在返回给认证工具,如果存在则校验密码是否正确,如果正确则判断该用户是否配置了证书,如果配置了证书,则读取证书序列号,然后将结果返回给工具。如果密码不正确或者未配置证书,均将结果返回给工具。然后,认证工具判断证书是否下载成功,如果成功,则更新本地证书序列号,并返回主界面,如果证书下载失败,则输出失败原因。

图4是根据本申请实施例的账户登录的流程图,如图4所示,认证工具在操作者使用预定用户进行登录之后,确定是使用证书方式登录的,校验证书是否正确,如果不正确,则登录失败则显示相应原因,如果校验证书正确,则读取证书文件内的序列号,将账户密码以及序列号等信息进行封装,发送数据给运维管控平台。运维管控平台接收认证工具请求,然后解析数据,如果用户存在则判断密码是否正确,如果密码正确,然后判断序列号是否对应,如果用户存在、密码正确、序列号也对应,则保存登录信息,如果保存成功则登录成功。如果用户不存在、密码不正确、序列号不对应或者登录信息未保存成功,则登录失败。在得到登录结果之后,将登录结果返回给认证工具,认证工具获取登录结果,如果登录成功则进行后续流程,如果登录失败,则显示登录失败的原因。

图5是根据本申请实施例的用户注销的流程图,如图5所示,首先发起用户注销流程,然后判断用户对应的账户是否处于登录状态,如果是,则将账户、密码等信息进行封装并发送给运维管理平台,然后等待注销结果,如果账户并不是登录状态,则注销失败,然后显示注销失败原因,并将注销失败登录状态变成未登录的状态。运维管控平台接收认证工具请求,然后进行数据解析,如果用户存在并且该账户(即用户)是在登录状态,则注销成功;如果用户不存在或者账户没有在登录状态,则注销失败。然后,运维管控工具将注销结果发送给认证工具,认证工具获取注销结果,如果注销成功,则提示成功,如果注销失败则显示相应的注销失败的原因。

用户注销时,可能由于网络或者运维管控平台上的操作而导致登录状态处于异常,从而导致注销失败,为防止该原因导致账户无法注销,认证工具会在用户选择注销后状态强制变为未登录状态,不影响拦截不可信的连接。

在上述实施方式中,也可以用驻留程序去识别软证书。

通过上述方案解决了相关技术中无法识别数据库操作方所带来的安全隐患的问题,从而减少了数据库的安全隐患。

在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。

上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。

该本实施例中就提供了这样的一种装置或系统。该装置包括:确定模块,用于确定数据库的操作方发起调用数据库客户端的操作,其中,所述数据库客户端用于访问数据库服务端,并对数据库服务端中的数据进行维护;调用模块,用于调用认证工具,其中,所述认证工具用于让所述操作方使用预先分配的认证用户进行登录;允许模块,用于在通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功之后,允许所述操作方通过所述数据库客户端使用数据库用户名登录到数据库服务端进行操作;记录模块,用于记录所述认证用户在登录到所述数据库客户端之后所进行的数据库操作信息。

该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。

可选地,通过所述认证工具确定所述操作方通过预先分配的认证用户进行登录成功包括:通过认证工具调用所述认证用户对应的证书,并将所述证书的证书信息和所述认证用户的用户名和密码发送给运维管理平台;在所述认证工具接收到所述运维管理平台的认证成功信息之后,确定所述操作方通过所述预先分配的认证用户进行登录成功。

可选地,还包括:注册模块,用于通过所述认证工具在所述运维管理平台为所述操作方注册认证用户,在注册成功之后,通过上述认证工具保存所述运维管理平台发送的所述认证用户对应的认证证书。

可选地,还包括:注销模块,用于在确定所述操作方通过所述数据库客户端操作所述数据库服务端结束之后,通过所述认证工具向所述运维管理平台注销所述认证用户。

通过上述实施例解决了相关技术中无法识别数据库操作方所带来的安全隐患的问题,从而减少了数据库的安全隐患。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 一种数据处理方法、装置和用于数据处理的装置
  • 一种增强内容显示方法、处理方法、显示装置及处理装置
  • 一种漏洞分析方法和装置及数据处理方法和装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 一种数据库操作的处理方法、装置、设备及介质
  • 一种基于会话保持的数据库操作风险提示处理方法及装置
技术分类

06120116458703