本发明专利技术涉及一种基于拼接SQL语句控制数据权限的方法和系统,该方法包括:获取用户的原始SQL查询语句;根据用户的身份信息确定权限SQL语句片段;将权限SQL语句片段与原始SQL查询语句进行拼接;基于拼接后的SQL查询语句获取控制数据权限后的数据。本发明专利技术提供的方法,在获取用户的原始SQL查询语句之后,根据用户的身份信息确定权限SQL语句片段;将权限SQL语句片段与原始SQL查询语句进行拼接;基于拼接后的SQL查询语句获取控制数据权限后的数据,实现了数据权限的灵活控制。
Method and system of controlling data permission based on splicing SQL statement
【技术实现步骤摘要】
基于拼接SQL语句控制数据权限的方法和系统
本专利技术涉及计算机
,尤其涉及一种基于拼接SQL语句控制数据权限的方法和系统。
技术介绍
在后台管理系统中一般存在权限管理,权限分为数据权限与功能权限,而目前权限设置都是功能权限,具体表现为这个用户能不能看到这个菜单,这个用户能不能看到这个功能按钮。在大部分的后台管理也只有功能权限,在政务领域存在用户只能访问固定区域的数据,增加数据的保护性的需求,目前的权限管理不能满足用户灵活管理数据访问权限的需求。
技术实现思路
(一)要解决的技术问题为了解决现有技术的上述问题,本专利技术提供一种基于拼接SQL语句控制数据权限的方法和系统。(二)技术方案为了达到上述目的,本专利技术采用的主要技术方案包括:一种基于拼接SQL语句控制数据权限的方法,所述方法包括:S101,获取用户的原始SQL查询语句;S102,根据所述用户的身份信息确定权限SQL语句片段;S103,将所述权限SQL语句片段与所述原始SQL查询语句进行拼接;S104,基于拼接后的SQL查询语句获取控制数据权限后的数据。可选地,所述权限SQL语句片段包括行SQL语句片段和列SQL语句片段;所述行SQL语句片段,用于控制访问的数据量;所述列SQL语句片段,用于控制显示的数据字段。可选地,所述行SQL语句片段为:权限变量和权限变量值;所述列SQL语句片段为:字段名称。可选地,所述原始SQL查询语句包括关键字和变量,其中,所述关键字至少包括select和form;所述S103具体包括:将列SQL语句片拼接入select和form之间,将所述行SQL语句片通过关键字and拼接入所述原始SQL查询语句最后。为了达到上述目的,本专利技术采用的主要技术方案还包括:一种基于拼接SQL语句控制数据权限的系统,所述系统包括:管理服务模块,权限服务模块;所述管理服务模块与所述权限服务模块连接;所述权限服务模块,用于存储用户身份信息与数据权限之间的对应关系;所述管理服务模块,用于获取用户的原始SQL查询语句,根据所述用户的身份信息以及所述权限服务模块存储的用户身份信息与数据权限之间的对应关系确定权限SQL语句片段,将所述权限SQL语句片段与所述原始SQL查询语句进行拼接,基于拼接后的SQL查询语句获取控制数据权限后的数据。可选地,所述管理服务模块包括:业务处理层和数据查询层;所述业务处理层与所述数据查询层连接;所述数据查询层连接与所述权限服务模块连接;所述数据查询层与数据库连接;所述业务处理层,用于获取用户的原始SQL查询语句;所述数据查询层,用于根据所述用户的身份信息以及所述权限服务模块存储的用户身份信息与数据权限之间的对应关系确定权限SQL语句片段,将所述权限SQL语句片段与所述原始SQL查询语句进行拼接,基于拼接后的SQL查询语句获取控制数据权限后的数据;所述业务处理层,还用于展示控制数据权限后的数据。可选地,所述数据查询层,包括:拦截器和查询器;所述拦截器与所述查询器连接;所述拦截器与所述权限服务模块连接;所述拦截器,用于根据所述用户的身份信息以及所述权限服务模块存储的用户身份信息与数据权限之间的对应关系确定权限SQL语句片段,将所述权限SQL语句片段与所述原始SQL查询语句进行拼接;所述查询器,用于基于拼接后的SQL查询语句获取控制数据权限后的数据。可选地,所述权限SQL语句片段包括行SQL语句片段和列SQL语句片段;所述行SQL语句片段,用于控制访问的数据量;所述列SQL语句片段,用于控制显示的数据字段。可选地,所述行SQL语句片段为:权限变量和权限变量值;所述列SQL语句片段为:字段名称。可选地,所述原始SQL查询语句包括关键字和变量,其中,所述关键字至少包括select和form;所述将所述权限SQL语句片段与所述原始SQL查询语句进行拼接,包括:将列SQL语句片拼接入select和form之间,将所述行SQL语句片通过关键字and拼接入所述原始SQL查询语句最后。(三)有益效果本专利技术的有益效果是:在获取用户的原始SQL查询语句之后,根据用户的身份信息确定权限SQL语句片段;将权限SQL语句片段与原始SQL查询语句进行拼接;基于拼接后的SQL查询语句获取控制数据权限后的数据,实现了数据权限的灵活控制。附图说明图1为本申请一实施例提供的一种基于拼接SQL语句控制数据权限的方法的流程示意图;图2为本申请一实施例提供的一种基于拼接SQL语句控制数据权限的系统的结构示意图;图3为本申请一实施例提供的另一种基于拼接SQL语句控制数据权限的方法的流程示意图;图4为本申请一实施例提供的另一种基于拼接SQL语句控制数据权限的方法的应用界面示意图。具体实施方式为了更好的解释本专利技术,以便于理解,下面结合附图,通过具体实施方式,对本专利技术作详细描述。在后台管理系统中一般存在权限管理,权限分为数据权限与功能权限,而目前权限设置都是功能权限,具体表现为这个用户能不能看到这个菜单,这个用户能不能看到这个功能按钮。在大部分的后台管理也只有功能权限,在政务领域存在用户只能访问固定区域的数据,增加数据的保护性的需求,目前的权限管理不能满足用户灵活管理数据访问权限的需求。基于此,本申请提供一种基于拼接SQL语句控制数据权限的方法和系统,在获取用户的原始SQL查询语句之后,根据用户的身份信息确定权限SQL语句片段;将权限SQL语句片段与原始SQL查询语句进行拼接;基于拼接后的SQL查询语句获取控制数据权限后的数据,实现了数据权限的灵活控制。具体的,参见图1,本实施例提供的具体流程如下:S101,获取用户的原始SQL查询语句。每一条原始SQL查询语句都拥有一个ID,来识别唯一性,原始SQL查询语句包括关键字(如select,from,where等)和变量(例如kf_sec_user),其中,关键字至少包括select和form。例如select*fromkf_sec_userwhere1=1。S102,根据用户的身份信息确定权限SQL语句片段。其中,权限SQL语句片段包括行SQL语句片段和列SQL语句片段。行SQL语句片段,用于控制访问的数据量。列SQL语句片段,用于控制显示的数据字段。具体的,行SQL语句片段为:权限变量和权限变量值。列SQL语句片段为:字段名称。本步骤中的用户的身份信息可以为用户登录的用户名等。本步骤中的权限SQL语句片段也有拥有一个ID来作为唯一的标识,权限SQL语句片段分为两种,一种是行SQL语句片段,一种是列SQL语句片段。行S本文档来自技高网...
【技术保护点】
1.一种基于拼接SQL语句控制数据权限的方法,其特征在于,所述方法包括:/nS101,获取用户的原始SQL查询语句;/nS102,根据所述用户的身份信息确定权限SQL语句片段;/nS103,将所述权限SQL语句片段与所述原始SQL查询语句进行拼接;/nS104,基于拼接后的SQL查询语句获取控制数据权限后的数据。/n
【技术特征摘要】
1.一种基于拼接SQL语句控制数据权限的方法,其特征在于,所述方法包括:
S101,获取用户的原始SQL查询语句;
S102,根据所述用户的身份信息确定权限SQL语句片段;
S103,将所述权限SQL语句片段与所述原始SQL查询语句进行拼接;
S104,基于拼接后的SQL查询语句获取控制数据权限后的数据。
2.根据权利要求1所述的方法,其特征在于,所述权限SQL语句片段包括行SQL语句片段和列SQL语句片段;
所述行SQL语句片段,用于控制访问的数据量;
所述列SQL语句片段,用于控制显示的数据字段。
3.根据权利要求2所述的方法,其特征在于,所述行SQL语句片段为:权限变量和权限变量值;
所述列SQL语句片段为:字段名称。
4.根据权利要求2所述的方法,其特征在于,所述原始SQL查询语句包括关键字和变量,其中,所述关键字至少包括select和form;
所述S103具体包括:
将列SQL语句片拼接入select和form之间,将所述行SQL语句片通过关键字and拼接入所述原始SQL查询语句最后。
5.一种基于拼接SQL语句控制数据权限的系统,其特征在于,所述系统包括:管理服务模块,权限服务模块;
所述管理服务模块与所述权限服务模块连接;
所述权限服务模块,用于存储用户身份信息与数据权限之间的对应关系;
所述管理服务模块,用于获取用户的原始SQL查询语句,根据所述用户的身份信息以及所述权限服务模块存储的用户身份信息与数据权限之间的对应关系确定权限SQL语句片段,将所述权限SQL语句片段与所述原始SQL查询语句进行拼接,基于拼接后的SQL查询语句获取控制数据权限后的数据。
6.根据权利要求5所述的系统,其特征在于,所述管理服务模块包括:业务处理层和数据查询层;
所述业...
【专利技术属性】
技术研发人员:麦锦超,谭亮亮,
申请(专利权)人:广东金赋科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。