数据库访问控制方法及系统
文献发布时间:2023-06-19 12:10:19
技术领域
本发明涉及大数据技术领域,尤其涉及一种数据库访问控制方法及系统。
背景技术
目前的数据库访问中,用户只要有某数据库的操作权限,便可以进行所有增删查改操作。这种方式既不安全又不灵活。实际应用中,有时只想给某个用户一部分权限来达到安全控制的目的,比如说用户可以查询和增加,而不能删除和修改已有数据;再比如只想给某用户一个数据库中部分表的访问权限以及另外几张表的增加权限。传统的数据库权限控制无法做到这些需求。
发明内容
本发明实施例提出一种数据库访问控制方法,用以实现对数据库操作权限的灵活控制,该方法包括:
拦截用户发送的SQL语句和token值;
从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;
根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限,所述权限配置表配置了不同用户对数据库中不同表的不同操作的权限;
在判断结果为有权限时,将所述SQL语句发送至数据库,获得数据库操作结果并发送至用户。
本发明实施例提出一种数据库访问控制系统,用以实现对数据库操作权限的灵活控制,该系统包括:
拦截模块,用于拦截用户发送的SQL语句和token值;
解析模块,用于从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;
判断模块,用于根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限,所述权限配置表配置了不同用户对数据库中不同表的不同操作的权限;在判断结果为有权限时,将所述SQL语句发送至数据库,获得数据库操作结果并发送至用户。
本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库访问控制方法。
本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库访问控制方法的计算机程序。
在本发明实施例中,拦截用户发送的SQL语句和token值;从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限,所述权限配置表配置了不同用户对数据库中不同表的不同操作的权限;在判断结果为有权限时,将所述SQL语句发送至数据库,获得数据库操作结果并发送至用户。在上述过程中,权限配置表配置了不同用户对数据库中不同表的不同操作的权限,通过拦截并解析SQL语句,使得权限控制精细到每个用户每张表每类操作,十分灵活且简单易用,能够使数据库访问更加安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中数据库访问控制方法的流程图;
图2为本发明实施例中数据库访问控制方法的详细流程图;
图3为本发明实施例中数据库访问控制系统的示意图;
图4为本发明实施例中数据库访问控制系统另一示意图;
图5为本发明实施例中计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
图1为本发明实施例中数据库访问控制方法的流程图,如图1所示,该方法包括:
步骤101,拦截用户发送的SQL语句和token值;
步骤102,从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;
步骤103,根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限,所述权限配置表配置了不同用户对数据库中不同表的不同操作的权限;
步骤104,在判断结果为有权限时,将所述SQL语句发送至数据库,获得数据库操作结果并发送至用户。
在本发明实施例中,权限控制精细到每个用户每张表每类操作,十分灵活且简单易用,能够使数据库访问更加安全。
在一实施例中,所述操作包括插入(insert)、删除(delete)、查询(select)和更新(update)。
具体实施时,上述权限配置表可以存储于数据库中,也可以存储于其他文件存储器中,表1为本发明实施例中权限控制表的示例,每一列存的都是所有该行用户可以插入、删除、查询、更新的数据表表名。
表1
在一实施例中,在拦截用户发送的SQL语句之前,还包括:
接收用户发送的登录请求;
基于所述登录请求对用户进行身份验证;
在用户身份验证通过后,向用户返回token值.。
在上述实施例中,主要是为了对拦截的SQL语句的用户进行身份验证。
在一实施例中,所述方法还包括:
在判断结果为无权限时,向用户返回无权限提示信息。
上述无权限提示信息可以采用告警的方式提示。
基于上述实施例,本发明提出如下一个实施例来说明数据库访问控制方法的详细流程,图2为本发明实施例中数据库访问控制方法的详细流程图,如图2所示,包括:
1.用户登录:接收用户发送的登录请求;
2.token值返回:基于所述登录请求对用户进行身份验证,在用户身份验证通过后,向用户返回token值;
3.发送SQL语句+token值:接收用户发送的token值和SQL语句;
4.解析:从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;
5.查权限:根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限;转至7和8;
6.在判断结果为无权限时,向用户返回无权限提示信息;
7.在判断结果为有权限时,将所述SQL语句发送至数据库,执行SQL语句;
8.返回操作结果:获得数据库操作结果并发送至用户。
当然,可以理解的是,上述详细流程还可以有其他变化例,相关变化例均应落入本发明的保护范围。
综上所述,在本发明实施例提出的方法中,拦截用户发送的SQL语句和token 值;从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限,所述权限配置表配置了不同用户对数据库中不同表的不同操作的权限;在判断结果为有权限时,将所述SQL语句发送至数据库,获得数据库操作结果并发送至用户。在上述过程中,权限控制精细到每个用户每张表每类操作,十分灵活且简单易用,能够使数据库访问更加安全。
本发明实施例还提出一种数据库访问控制系统,其原理与数据库访问控制方法类似,这里不再赘述。
图3为本发明实施例中数据库访问控制系统的示意图,如图3所示,该系统包括:
拦截模块301,用于拦截用户发送的SQL语句和token值;
解析模块302,用于从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;
判断模块303,用于根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限,所述权限配置表配置了不同用户对数据库中不同表的不同操作的权限;在判断结果为有权限时,将所述SQL语句发送至数据库,获得数据库操作结果并发送至用户。
在一实施例中,所述操作包括插入、删除、查询和更新。
所述操作包括插入、删除、查询和更新。
图4为本发明实施例中数据库访问控制系统另一示意图,在一实施例中,所述系统还包括身份验证模块304,用于:
在拦截用户发送的SQL语句之前,接收用户发送的登录请求;
基于所述登录请求对用户进行身份验证;
在用户身份验证通过后,向用户返回token值。
在一实施例中,解析模块具体用于:
在判断结果为无权限时,向用户返回无权限提示信息。
综上所述,在本发明实施例提出的系统中,拦截用户发送的SQL语句和token 值;从token值中解析出用户名,从SQL语句中解析出表名和对表的操作;根据用户名、表名和对表的操作,查询权限配置表,判断所述用户是否有权限,所述权限配置表配置了不同用户对数据库中不同表的不同操作的权限;在判断结果为有权限时,将所述SQL语句发送至数据库,获得数据库操作结果并发送至用户。在上述过程中,权限控制精细到每个用户每张表每类操作,十分灵活且简单易用,能够使数据库访问更加安全。
本申请的实施例还提供一种计算机设备,图5为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的数据库访问控制方法中全部步骤,所述计算机设备具体包括如下内容:
处理器(processor)501、存储器(memory)502、通信接口(CommunicationsInterface) 503和通信总线504;
其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;所述通信接口503用于实现服务器端设备、检测设备以及用户端设备等相关设备之间的信息传输;
所述处理器501用于调用所述存储器502中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的数据库访问控制方法中的全部步骤。
本申请的实施例还提供一种计算机可读存储介质,能够实现上述实施例中的数据库访问控制方法中全部步骤,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的数据库访问控制方法的全部步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等) 上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种支持业务安全标记的数据库访问控制方法及系统
- 一种基于密码桥的数据库访问控制方法和系统