一种redis数据库的操作控制方法、装置及设备与流程

文档序号:20600692发布日期:2020-05-01 21:36阅读:141来源:国知局
一种redis数据库的操作控制方法、装置及设备与流程

本发明涉及redis数据库技术领域,更具体地说,涉及一种redis数据库的操作控制方法、装置及设备。



背景技术:

redis数据库是当下非常流行的一种内存存储数据库,因其读写性能高的特点被大量用于网站服务端缓存,以减轻传统后台数据库压力。目前,在已知redis数据库的地址和端口的情况下,所有用户都有操作redis数据库的权限,显然这样会导致redis数据库的安全性低。



技术实现要素:

本发明的目的是提供一种redis数据库的操作控制方法、装置及设备,能够解决现有技术中redis数据库的访问方式存在的安全性低的问题。

为了实现上述目的,本发明提供如下技术方案:

一种redis数据库的操作控制方法,包括:

接收客户端发送的命令执行信息,所述命令执行信息包括身份信息及命令信息,所述身份信息为表示所述客户端的身份的信息,所述命令信息为与所述客户端需要使用的命令相对应的信息;

基于所述身份信息判断所述客户端是否属于预设的客户端,如果所述客户端属于预设的客户端,则判断所述客户端是否具有执行所述第一命令的权限,如果具有,则对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令,如果不具有,则向所述客户端返回错误码,如果所述客户端不属于预设的客户端,则对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令;其中,所述第一命令为与所述命令信息对应的命令。

优选的,还包括:

接收管理员发送的重命名请求,第二命令进行重命名;其中,所述第二命令为与所述重命名请求对应的命令;

将重命名后得到的所述第二命令的名称,返回给允许执行所述第二命令的客户端,或者确定无需将重命名后得到的所述第二命令的名称返回给任意的客户端。

优选的,对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令,包括:

调取与所述客户端对应的关键字,对所述reids数据库中包含的数据进行检索,确定检索得到的具有所述关键字的数据为所述客户端具有访问权限的部分数据,对该部分数据执行所述第一命令。

优选的,接收客户端发送的命令执行信息之前,还包括:

接收所述客户端发送的连接请求;

基于所述连接请求判断对应的客户端是否属于合法的客户端,如果是,则确定允许接收所述客户端发送的命令执行信息,如果否,则确定禁止接收所述客户端发送的命令执行信息。

优选的,还包括:

如果所述客户端属于预设的客户端,则判断所述客户端的操作控制标识是否为表示开启的标识,如果是,则执行判断所述客户端是否具有执行所述第一命令的权限的步骤,如果否,则执行对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令的步骤。

优选的,判断所述客户端是否具有执行所述第一命令的权限,包括:

查询所述客户端对应的命令列表,并判断所述命令信息是否存储于所述命令列表中;

基于所述身份信息判断所述客户端是否属于预设的客户端,包括:

查询所述redis数据库的用户列表,并判断所述身份信息是否存储于所述用户列表中。

优选的,还包括:

接收编辑指令,并基于所述编辑指令对所述用户列表中包含的用户信息,或者所述命令列表中包含的命令信息,进行相应的添加、修改、查询或删除。

一种redis数据库的操作控制装置,其特征在于,包括:

接收模块,用于:接收客户端发送的命令执行信息,所述命令执行信息包括身份信息及命令信息,所述身份信息为表示所述客户端的身份的信息,所述命令信息为与所述客户端需要使用的命令相对应的信息;

第一判断模块,用于:基于所述身份信息判断所述客户端是否属于预设的客户端;

处理模块,用于:如果所述客户端属于预设的客户端,则判断所述客户端是否具有执行所述第一命令的权限,如果具有,则对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令,如果不具有,则向所述客户端返回错误码,如果所述客户端不属于预设的客户端,则对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令;其中,所述第一命令为与所述命令信息对应的命令。

一种redis数据库的操作控制设备,包括:

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

处理器,用于执行所述计算机程序时实现如上任一项所述redis数据库的操作控制方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述redis数据库的操作控制方法的步骤。

本发明提供了一种redis数据库的操作控制方法、装置及设备,该方法包括:接收客户端发送的命令执行信息,所述命令执行信息包括身份信息及命令信息,所述身份信息为表示所述客户端的身份的信息,所述命令信息为与所述客户端需要使用的命令相对应的信息;基于所述身份信息判断所述客户端是否属于预设的客户端,如果所述客户端属于预设的客户端,则判断所述客户端是否具有执行所述第一命令的权限,如果具有,则对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令,如果不具有,则向所述客户端返回错误码,如果所述客户端不属于预设的客户端,则对所述redis数据库包含的所述客户端具有访问权限的部分数据,执行所述第一命令;其中,所述第一命令为与所述命令信息对应的命令。本申请在接收到客户端发送的命令执行信息时,先基于客户端的身份信息确定客户端是否为需要进行权限控制的客户端,如果不是,则可以执行相应的命令,如果是,则进一步判断客户端是否具有执行相应命令的权限,在客户端具有该权限时,对redis数据库中包含的客户端具有访问权限的部分数据执行相应的命令,否则则返回错误码给客户端,从而通过方式,实现用户对redis数据库的操作控制,针对不同客户端,或者说针对不同用户,可以赋予不同的权限,能够有效避免对redis数据库的不当操作以及用户权限过大带来的运维问题,使得redis数据库具有高级别的安全性。

附图说明

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

图1为本发明实施例提供的一种redis数据库的操作控制方法的流程图;

图2为本发明实施例提供的一种redis数据库的操作控制装置的结构示意图。

具体实施方式

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

请参阅图1,其示出了本发明实施例提供的一种redis数据库的操作控制方法的流程图,可以包括:

s11:接收客户端发送的命令执行信息,命令执行信息包括身份信息及命令信息,身份信息为表示客户端的身份的信息,命令信息为与客户端需要使用的命令对应的信息。

本发明实施例提供的一种redis数据库的操作控制方法的执行主体可以为对应的访问控制装置,而该装置可以位于具有redis数据库的服务器后台中;在用户需要操作redis数据库时,可以通过客户端向访问控制装置发送命令执行信息,命令执行信息中可以包括客户端的身份信息及客户端需要执行的命令的命令信息等参数,具体来说,客户端的身份信息可以包括可以唯一的表示客户端的标识,或者说可以唯一的表示使用客户端的用户的标识,如编号、id等,而命令的命令信息可以包括可以唯一的表示命令的标识,如命令的名称、编号等,当然根据实际需要进行的其他设定均在本发明的保护范围之内。另外,用户对redis数据库的操作(或者说访问)可以包括读、写等,当然根据实际需要进行的其他设定均在本发明的保护范围之内。

s12:基于身份信息判断客户端是否属于预设的客户端。

本实施例中可以预先设定有相应的客户端,也即预设的客户端,预设的客户端为在对redis数据库进行操作时受限制的客户端,通常可以为普通客户端,而除预设的客户端之外的其他客户端,则为在对redis数据库进行操作时不受限制的客户端,通常可以为管理员对应的客户端或者其他级别较高的用户对应的客户端,具体设置哪些客户端为预设的客户端可以根据实际需要进行设定。在设定好预设的客户端后,则可以基于身份信息判断身份信息对应的客户端是否为预设的客户端,进而确定是否需要对身份信息对应的客户端进行权限控制。

s13:如果客户端属于预设的客户端,则判断客户端是否具有执行第一命令的权限,如果具有,则对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令,如果不具有,则向客户端返回错误码;其中,第一命令为与命令信息对应的命令。

如果客户端属于预设的客户端,则说明需要对客户端进行权限控制,具体来说,可以设定有该客户端能够执行的命令,从而在命令信息对应的命令为客户端能够执行的命令,也即客户端具有执行与命令信息相对应的命令的权限时,对redis数据库包含的客户端具有访问权限的部分数据,执行命令信息对应的命令,除客户端能够执行的命令之外的其他的命令均为不允许客户端执行的命令,也即客户端不具有相应命令的权限,此时向客户端返回错误码,以告知客户端无法执行相应命令这一信息。其中,第一命令中的“第一”并不是该命令实际的名称或者标识等,仅仅用于表示该命令与客户端发送的命令执行信息中的命令信息相对应。另外,客户端可能对redis数据库中部分的数据具有访问权限,也可能对全部的数据具有访问权限,这是可以根据实际需要进行设置的;也即不同的客户端能够访问的redis数据库中的数据的部分可能有所不同,因此本实施例中在确定客户端能够执行相应命令时,仅允许其对具有访问权限的部分数据执行该命令,从而能够进一步保证redis数据库中保存的数据的安全性。

s14:如果客户端不属于预设的客户端,则对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令。

如果客户端不属于预设的客户端,则默认客户端对redis数据库的操作不受限制,因此此时可以直接对具有访问权限的部分数据,执行命令信息对应的命令。而本实施例中通过对客户端是否属于预设的客户端的验证及客户端是否具有执行某项命令的权限的验证,实现对redis数据库的操作权限控制。

本申请在接收到客户端发送的命令执行信息时,先基于客户端的身份信息确定客户端是否为需要进行权限控制的客户端,如果不是,则可以执行相应的命令,如果是,则进一步判断客户端是否具有执行相应命令的权限,在客户端具有该权限时,对redis数据库中包含的客户端具有访问权限的部分数据执行相应的命令,否则则返回错误码给客户端,从而通过方式,实现用户对redis数据库的操作控制,针对不同客户端,或者说针对不同用户,可以赋予不同的权限,能够有效避免对redis数据库的不当操作以及用户权限过大带来的运维问题,使得redis数据库具有高级别的安全性。

本发明实施例提供的一种redis数据库的操作控制方法,还可以包括:

接收管理员发送的重命名请求,基于重命名请求第二命令进行重命名;其中,第二命令为与重命名请求对应的命令;

将重命名后得到的第二命令的名称,返回给允许执行第二命令的客户端,或者确定无需将重命名后得到的第二命令的名称返回给任意的客户端。

其中,第二命令中的“第二”并不是该命令实际的名称或者标识等,仅仅用于表示该命令与重命名请求相对应。需要说明的是,一般情况下客户端发送的命令执行信息中包含的命令信息可以为命令的名称,此时只有客户端知道某命令的名称,才能够发送相应的命令执行信息,才有可能能够使用该命令;因此,本实施例中支持命令的重命名功能,具体来说,可以接收管理员发送的重命名请求后实现相应命令的重命名,如果重命名后允许重命名的命令被部分客户端使用,则将重命名后得到的名称返回给允许使用重命名的命名的客户端,如果重命名后不允许重命名的命令被任意客户端使用,则确定无需将重命名后得到的对应命令的名称返回给任意的客户端,从而进一步提高了redis数据库的安全性,并且提高了权限设置的灵活性。举例说明,如保存redis数据库到磁盘的命令(dbsave),这条命令会造成系统内存、硬盘、cpu等资源大幅度消耗,如果不允许任意客户端使用该命令,则可将此命令重命名,如重命名为ddbbsave等,然后确定不将重命名后得到的名称发给任意客户端,从而直接屏蔽任意用户使用这条命令。

本发明实施例提供的一种redis数据库的操作控制方法,对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令,可以包括:

调取与客户端对应的关键字,对reids数据库中包含的数据进行检索,确定检索得到的具有关键字的数据为客户端具有访问权限的部分数据,对该部分数据执行第一命令。

需要说明的是,可以设置与不同的客户端对应的不同的关键字,而包含客户端对应的关键字的数据则为客户端具有访问权限的数据,因此本实施例中在对客户端具有访问权限的部分数据执行相应命令时,可以先调取出与客户端对应的关键字,进而通过对该关键字进行检索,确定出包含该关键字的数据为客户端具有访问权限的数据,以在这部分数据中执行客户端需要执行的命令,以实现对这部分数据的操作。从而通过关键字实现具有访问权限的数据的确定,进而执行相应命令的方式,能够快速实现可访问的数据的确定,进而提高数据访问的效率。

另外,关键字可以设置于一个关键字列表中,每个客户端可以对应一个关键字列表,而每个关键字列表中包含该客户端可以访问的数据包含的关键字,进而通过查表的方式实现具有访问权限的数据的确定,进一步提高了实现效率;当然也可以在外界的控制下,对关键字列表中的关键字进行相应的添加、修改、查询或删除等操作,以实现相应客户端可访问的数据的改变,从而进一步提高了客户端权限控制的灵活性。本发明实施例提供的一种redis数据库的操作控制方法,接收客户端发送的命令执行信息之前,还可以包括:

接收客户端发送的连接请求;

基于连接请求判断对应的客户端是否属于合法的客户端,如果是,则确定允许接收客户端发送的命令执行信息,如果否,则确定禁止接收客户端发送的命令执行信息。

在启动redis数据库的服务后,还可以接收客户端发送的连接请求,该连接请求中可以包括客户端的身份信息及密码等,从而通过对连接请求中包含的信息的验证,确定对应的客户端是否为合法的客户端,如果是,则确定允许接收客户端发送的命令执行信息,实现与客户端的连接,否则,则确定禁止接收客户端发送的命令执行信息,拒绝实现与客户端的连接,从而通过这种方式进一步增强了redis数据库的安全性。

本发明实施例提供的一种redis数据库的操作控制方法,还可以包括:

如果客户端属于预设的客户端,则判断客户端的操作控制标识是否为表示开启的标识,如果是,则执行判断客户端是否具有执行第一命令的权限的步骤,如果否,则执行对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令的步骤。

需要说明的是,还可以为每个预设的客户端设置有表示是否开启操作权限的控制的标识,从而在该标识表示开启时认为需要对客户端进行操作权限的控制,因此此时才对客户端发送的命令信息进行验证,否则则直接对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令,从而进一步增强了权限设置的灵活性。

另外,还可以为每个预设的客户端能够执行的命令设置有表示是否开启操作权限的控制的标识,从而在该标识表示开启时认为需要对客户端执行该命令进行操作权限的控制,因此此时才会判断客户端是否具有执行该命令的权限,否则则直接对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令,从而进一步增强了权限设置的灵活性。

本发明实施例提供的一种redis数据库的操作控制方法,判断客户端是否具有执行第一命令的权限,可以包括:

查询客户端对应的命令列表,并判断命令信息是否存储于命令列表中。

具体来说,本实施例中可以设置有与每个预设的客户端一一对应的命令列表,命令列表中包含对应的客户端能够执行的命令的命令信息,从而通过查看命令信息是否存在于命令列表中,即可确定出客户端是否可以执行命令信息对应的命令,也即本申请能够通过命令列表实现相应命令信息的快速查询。具体来说,如果命令信息是否存储于命令列表中,则说明客户端可以执行该命令信息对应的命令,因此直接执行该命令,否则则说明客户端不可以执行该命令信息对应的命令,因此拒绝执行该命令。另外,还可以接收管理员输入的对客户端的命令列表中的命令信息进行添加、修改、查询或删除等的指令,通过进行相应的操作实现对命令列表的维护,使得命令列表中的命令信息符合当前的需求。

本发明实施例提供的一种redis数据库的操作控制方法,基于身份信息判断客户端是否属于预设的客户端,可以包括:

查询redis数据库的用户列表,并判断身份信息是否存储于用户列表中。

本实施例中可以将预设的用户对应客户端的身份信息均存储于用户列表中,从而通过用户列表可以实现身份信息的快速查询。具体来说,如果身份信息在用户列表中,则说明对应的客户端为预设的客户端,否则则说明对应的客户端不为预设的客户端。另外,还可以将操作控制标识设置在用户列表中,从而也方便了对该操作控制标识的查询。

本发明实施例提供的一种redis数据库的操作控制方法,还可以包括:

接收编辑指令,并基于编辑指令对用户列表中包含的用户信息,或者命令列表中包含的命令信息,进行相应的添加、修改、查询或删除。

一般来说,能够对用户列表及命令列表进行编辑的为管理员,因此本实施例中可以接收管理员输入的编辑指令,进而实现相应的添加、修改、查询或删除的操作,实现对用户列表及命令列表的维护,使得用户列表中的用户信息及命令列表中的命令信息符合当前的需求。

综上,本申请提供的是一种全新的保护redis数据库安全性的方法,通过用户列表及命令列表实现redis用户权限操作控制,cpu消耗成本极小,且方法完全模块化,非常适合redis日常运维使用。

本发明实施例还提供了一种redis数据库的操作控制装置,如图2所示,可以包括:

接收模块11,用于:接收客户端发送的命令执行信息,命令执行信息包括身份信息及命令信息,身份信息为表示客户端的身份的信息,命令信息为与客户端需要使用的命令相对应的信息;

第一判断模块12,用于:基于身份信息判断客户端是否属于预设的客户端;

处理模块13,用于:如果客户端属于预设的客户端,则判断客户端是否具有执行第一命令的权限,如果具有,则对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令,如果不具有,则向客户端返回错误码,如果客户端不属于预设的客户端,则对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令;其中,第一命令为与命令信息对应的命令。

本发明实施例提供的一种redis数据库的操作控制装置,还可以包括:

重命名模块,用于:接收管理员发送的重命名请求,基于重命名请求对第二命令进行重命名;其中,第二命令为与重命名请求对应的命令;将重命名后得到的第二命令的名称,返回给允许执行第二命令的客户端,或者确定无需将重命名后得到的第二命令的名称返回给任意的客户端。

本发明实施例提供的一种redis数据库的操作控制装置,处理模块可以包括:

检索单元,用于:调取与客户端对应的关键字,对reids数据库中包含的数据进行检索,确定检索得到的具有关键字的数据为客户端具有访问权限的部分数据,对该部分数据执行第一命令。

本发明实施例提供的一种redis数据库的操作控制装置,还可以包括:

连接模块,用于:接收客户端发送的命令执行信息之前,接收客户端发送的连接请求;基于连接请求判断对应的客户端是否属于合法的客户端,如果是,则确定允许接收客户端发送的命令执行信息,如果否,则确定禁止接收客户端发送的命令执行信息。

本发明实施例提供的一种redis数据库的操作控制装置,还可以包括:

第二判断模块,用于:如果客户端属于预设的客户端,则判断客户端的操作控制标识是否为表示开启的标识,如果是,则执行判断客户端是否具有执行第一命令的权限的步骤,如果否,则执行对redis数据库包含的客户端具有访问权限的部分数据,执行第一命令的步骤。

本发明实施例提供的一种redis数据库的操作控制装置,第一判断模块可以包括:

第一判断单元,用于:查询客户端对应的命令列表,并判断命令信息是否存储于命令列表中。

本发明实施例提供的一种redis数据库的操作控制装置,第一判断模块可以包括:

第二判断单元,用于:查询redis数据库的用户列表,并判断身份信息是否存储于用户列表中。

本发明实施例提供的一种redis数据库的操作控制装置,还可以包括:

编辑模块,用于:接收编辑指令,并基于编辑指令对用户列表中包含的用户信息,或者命令列表中包含的命令信息,进行相应的添加、修改、查询或删除。

本发明实施例还提供了一种redis数据库的操作控制设备,可以包括:

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

处理器,用于执行计算机程序时实现如上任一项redis数据库的操作控制方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项redis数据库的操作控制方法的步骤。

需要说明的是,本发明实施例提供的一种redis数据库的操作控制装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种redis数据库的操作控制方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1