一种轻量级数据权限控制方法、装置及电子设备制造方法及图纸

技术编号:28838315 阅读:13 留言:0更新日期:2021-06-11 23:36
本发明专利技术公开了一种轻量级数据权限控制方法,所述方法包括:接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;将所述用户数据存放至线程局部变量中;在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;SQL拦截器拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL,其中,所述第一业务SQL用于所述用户请求至少一个所述目标数据。

【技术实现步骤摘要】
一种轻量级数据权限控制方法、装置及电子设备
本申请涉及权限控制领域,尤其涉及一种轻量级数据权限控制方法、装置及电子设备。
技术介绍
目前,数据权限控制方案繁多,但是权限体系太过笨重,实际开发过程中对业务的侵入、业务的耦合程度很高;另一方面,复杂的权限控制,对技术性要求很高,加大了学习成本,对一些简单业务场景不适用。因此,针对较为简单的业务场景,需要一种轻量级的权限控制方法。
技术实现思路
本申请要解决的技术问题,在于提供一种轻量级数据权限控制方法、装置及电子设备,以解决现有数据权限控制方法对业务高侵入、高耦合的技术问题。为实现上述目的,本申请采用下述技术方案:第一方面,本申请提供一种轻量级数据权限控制方法,所述方法包括:接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;将所述用户数据存放至线程局部变量中;在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;SQL拦截器拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL,其中,所述第一业务SQL用于所述用户请求至少一个所述目标数据。第二方面,本申请提供一种轻量级数据权限控制装置,所述装置包括:接收单元,用于接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;存储单元,用于将所述用户数据存放至线程局部变量中;添加单元,用于将至少一个所述目标数据的数据权限加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;拦截单元,用于拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL。第三方面,本申请提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由所述处理器执行以实现如上述第一方面所述的轻量级数据权限控制方法。第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由处理器执行以实现如上述第一方面所述的轻量级数据权限控制方法。本申请的有益效果是:本申请提供一种轻量级数据权限控制方法、装置及电子设备,实现用很少的工作量满足多渠道和不同接入方的数据权限的控制,降低了学习和开发成本,同时保证业务低侵入、低耦合。附图说明图1为本申请一个实施例提供的一种轻量级数据权限控制方法的流程示意图;图2为本申请一个实施例提供的轻量级数据权限控制装置的结构示意图;图3为本申请另一个实施例提供的轻量级数据权限控制装置的结构示意图;图4为本申请一个实施例提供的一种电子设备的结构示意图。具体实施方式下面通过具体实施例,并结合附图,对本申请的技术方案作进一步的具体描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请提供一种轻量级数据权限控制方法、装置及电子设备,以解决现有数据权限控制方法对业务高侵入、高耦合的技术问题。以下结合附图,详细说明本申请中各实施例提供的技术方案。请参阅附图1,其示出了本申请一个实施例提供的一种轻量级数据权限控制方法的流程示意图,所述方法包括:S101,接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据;其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据。S102,将所述用户数据存放至线程局部变量中;针对步骤S102,在一个示例中,当接收用户的进入请求时,将用户的公司数据、账户数据和角色数据存放在ThreadLocal中。S103,在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;针对步骤S103,在目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种,例如:AND(USER_ID={USER_ID})({USER_ID}为第一变量,不仅限于{},也可以是其他自定义的其他特殊标识,本申请对此不作限定。S104,SQL拦截器拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL;其中,所述第一业务SQL用于所述用户请求至少一个所述目标数据。针对步骤S104,例如,在最终将要执行的SQL拦截器中拦截第一业务SQL,将包含{USER_ID}等值替换成第一变量,从而达到控制数据权限的目的。不同数据持久层对应不同的SQL拦截和替换方式,例如:SpringDataJPA中可以实现StatementInspector接口对SQL进行拦截和变量的替换,在mybatis中实现Interceptor接口对SQL进行拦截替换。在一个示例中,在将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL之前,判断所述第一变量中的所述数据权限是否满足要求,如果是,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL。在一个示例中,预先在业务请求相关联的表格中设置所述公司数据、所述账户数据、所述角色数据与每个所述目标数据的数据权限的关联字段。请参阅附图2,其示出了本申请一个实施例提供的轻量级数据权限控制装置的结构示意图,所述装置包括:接收单元201,用于接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;存储单元202,用于将所述用户数据存放至线程局部变量中;添加单元203,用于将至少一个所述目标数据的数据权限加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;拦截单元204,用于拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL。请参阅附图3,其示出了本申请另一个实施例提供的轻量级数据权限控制装置的结构示意图,所述装置还包括:判断单元205,用于在将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL之前,判断所述第一变量中的所述数据权限是否满足要求,如果是,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL。请参阅附图4,其示出了本申请一个实施例提供的一种电子设备的结构示意图,可以包括:至少一个网络接口402、存储器403和本文档来自技高网...

【技术保护点】
1.一种轻量级数据权限控制方法,其特征是,所述方法包括:/n接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,/n其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;/n将所述用户数据存放至线程局部变量中;/n在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;/nSQL拦截器拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL,其中,所述第一业务SQL用于所述用户请求至少一个所述目标数据。/n

【技术特征摘要】
1.一种轻量级数据权限控制方法,其特征是,所述方法包括:
接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,
其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;
将所述用户数据存放至线程局部变量中;
在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;
SQL拦截器拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL,其中,所述第一业务SQL用于所述用户请求至少一个所述目标数据。


2.根据权利要求1所述的一种轻量级数据权限控制方法,其特征是,所述线程
局部变量为ThreadLocal。


3.根据权利要求1所述的一种轻量级数据权限控制方法,其特征是,在将所述
第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL之前,判断所述第一变量中的所述数据权限是否满足要求,如果是,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL。


4.根据权利要求1所述的一种轻量级数据权限控制方法,其特征是,预先在业
务请求相关联的表格中设置所述公司数据、所述账户数据、所述角色数据与每个所述目标数据的数据权限的关联字段。


5.一种轻量级数据权限控制装置,其特征是,所述装置包括:
接收单元,用于接收用户的进入请求,提取所述进入请求中...

【专利技术属性】
技术研发人员:庾浪
申请(专利权)人:浙江百应科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1