CN112948849A - 一种轻量级数据权限控制方法、装置及电子设备 - Google Patents
一种轻量级数据权限控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112948849A CN112948849A CN202110207713.5A CN202110207713A CN112948849A CN 112948849 A CN112948849 A CN 112948849A CN 202110207713 A CN202110207713 A CN 202110207713A CN 112948849 A CN112948849 A CN 112948849A
- Authority
- CN
- China
- Prior art keywords
- data
- variable
- user
- sql
- authority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 229940004975 interceptor Drugs 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种轻量级数据权限控制方法,所述方法包括:接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;将所述用户数据存放至线程局部变量中;在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;SQL拦截器拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL,其中,所述第一业务SQL用于所述用户请求至少一个所述目标数据。
Description
技术领域
本申请涉及权限控制领域,尤其涉及一种轻量级数据权限控制方法、装置及电子设备。
背景技术
目前,数据权限控制方案繁多,但是权限体系太过笨重,实际开发过程中对业务的侵入、业务的耦合程度很高;另一方面,复杂的权限控制,对技术性要求很高,加大了学习成本,对一些简单业务场景不适用。因此,针对较为简单的业务场景,需要一种轻量级的权限控制方法。
发明内容
本申请要解决的技术问题,在于提供一种轻量级数据权限控制方法、装置及电子设备,以解决现有数据权限控制方法对业务高侵入、高耦合的技术问题。
为实现上述目的,本申请采用下述技术方案:
第一方面,本申请提供一种轻量级数据权限控制方法,所述方法包括:
接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;
将所述用户数据存放至线程局部变量中;
在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;
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拦截和替换方式,例如:Spring Data JPA中可以实现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和至少一个处理器401。电子设备中的各个组件通过总线系统404耦合在一起。可以理解,总线系统404用于实现这些组件之间的连接通信。总线系统404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,但是为了清楚说明起见,在附图4中将各种总线都标为总线系统404。
在一些实施方式中,存储器403存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统4031和应用程序4032。
其中,操作系统4031,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种寄出业务以及处理基于硬件的任务。应用程序4032,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本申请实施例方法的程序可以包含在应用程序中。
在上述实施例中,电子设备还包括:存储在存储器403上的至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集可由处理器401执行实现本申请实施例中所述任一轻量级数据权限控制方法的步骤。
在一个实施例中,本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器执行时实现本申请实施例中所述任一轻量级数据权限控制方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的至少一条指令、至少一段程序、代码集或指令集可存储于一非易失性计算机可读取存储介质中,所述的至少一条指令、至少一段程序、代码集或指令集在执行时,可实现本申请实施例中所述任一地图绘制方法的步骤。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,这些均属于本申请的保护范围之内。
Claims (8)
1.一种轻量级数据权限控制方法,其特征是,所述方法包括:
接收用户的进入请求,提取所述进入请求中的用户数据和至少一个目标数据,
其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;
将所述用户数据存放至线程局部变量中;
在至少一个所述目标数据的数据权限上加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;
SQL拦截器拦截第一业务SQL,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL,其中,所述第一业务SQL用于所述用户请求至少一个所述目标数据。
2.根据权利要求1所述的一种轻量级数据权限控制方法,其特征是,所述线程
局部变量为ThreadLocal。
3.根据权利要求1所述的一种轻量级数据权限控制方法,其特征是,在将所述
第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL之前,判断所述第一变量中的所述数据权限是否满足要求,如果是,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL。
4.根据权利要求1所述的一种轻量级数据权限控制方法,其特征是,预先在业
务请求相关联的表格中设置所述公司数据、所述账户数据、所述角色数据与每个所述目标数据的数据权限的关联字段。
5.一种轻量级数据权限控制装置,其特征是,所述装置包括:
接收单元,用于接收用户的进入请求,提取所述进入请求中的用户数据和至
少一个目标数据,其中,所述用户数据至少包括所述用户的公司数据、账户数据和角色数据;
存储单元,用于将所述用户数据存放至线程局部变量中;
添加单元,用于将至少一个所述目标数据的数据权限加上所述公司数据、所述账户数据、所述角色数据中的任意一种的数据权限作为第一变量;
拦截单元,用于拦截第一业务SQL,将所述第一变量替换所述第一业务SQL
中的自定义变量获得第二业务SQL。
6.根据权利要求5所述的一种轻量级数据权限控制装置,其特征是,所述装置
还包括:
判断单元,用于在将所述第一变量替换所述第一业务SQL中的自定义变量获
得第二业务SQL之前,判断所述第一变量中的所述数据权限是否满足要求,如果是,将所述第一变量替换所述第一业务SQL中的自定义变量获得第二业务SQL。
7.一种电子设备,其特征是,所述电子设备包括处理器和存储器,所述存储
器中存储有至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由所述处理器执行以实现如权利要求1-4任一项权利要求所述的轻量级数据权限控制方法。
8.一种计算机可读存储介质,其特征是,所述计算机可读存储介质中存储有
至少一条指令、至少一段程序、待码集或指令集,所述至少一条指令、所述至少一段程序、所述待码集或指令集由处理器执行以实现如权利要求1-4任一项权利要求所述的轻量级数据权限控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110207713.5A CN112948849A (zh) | 2021-02-25 | 2021-02-25 | 一种轻量级数据权限控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110207713.5A CN112948849A (zh) | 2021-02-25 | 2021-02-25 | 一种轻量级数据权限控制方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112948849A true CN112948849A (zh) | 2021-06-11 |
Family
ID=76246000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110207713.5A Pending CN112948849A (zh) | 2021-02-25 | 2021-02-25 | 一种轻量级数据权限控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948849A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679792A (zh) * | 2013-12-03 | 2015-06-03 | 航天信息软件技术有限公司 | 一种数据权限的实现方法 |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
CN109815284A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种数据处理的方法和装置 |
CN111414643A (zh) * | 2020-03-17 | 2020-07-14 | 深圳市前海随手财富管理有限公司 | 数据权限控制方法、装置、服务器及存储介质 |
CN111898102A (zh) * | 2020-07-15 | 2020-11-06 | 上海松鼠课堂人工智能科技有限公司 | 权限配置方法、装置、计算机设备和存储介质 |
CN112347469A (zh) * | 2020-11-10 | 2021-02-09 | 浙江百应科技有限公司 | 一种低侵入的数据权限处理方法、系统及其电子设备 |
-
2021
- 2021-02-25 CN CN202110207713.5A patent/CN112948849A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679792A (zh) * | 2013-12-03 | 2015-06-03 | 航天信息软件技术有限公司 | 一种数据权限的实现方法 |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
CN109815284A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种数据处理的方法和装置 |
CN111414643A (zh) * | 2020-03-17 | 2020-07-14 | 深圳市前海随手财富管理有限公司 | 数据权限控制方法、装置、服务器及存储介质 |
CN111898102A (zh) * | 2020-07-15 | 2020-11-06 | 上海松鼠课堂人工智能科技有限公司 | 权限配置方法、装置、计算机设备和存储介质 |
CN112347469A (zh) * | 2020-11-10 | 2021-02-09 | 浙江百应科技有限公司 | 一种低侵入的数据权限处理方法、系统及其电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110290112B (zh) | 权限控制方法、装置、计算机设备及存储介质 | |
CN108563958B (zh) | 角色权限更新方法、装置、计算机设备和存储介质 | |
CN110377325B (zh) | 接口配置方法、接口调用方法、装置、设备及存储介质 | |
CN110765484B (zh) | 一种征信数据处理方法及电子设备 | |
CN111092811A (zh) | 一种请求处理方法、装置及api网关和可读存储介质 | |
CN112580094B (zh) | 数据处理方法、电子设备以及存储介质 | |
CN109460252B (zh) | 基于git的配置文件处理方法、装置和计算机设备 | |
CN110908778B (zh) | 任务部署方法、系统和存储介质 | |
CN109144487B (zh) | 进件业务开发方法、装置、计算机设备和存储介质 | |
CN109358874B (zh) | 业务规则更新方法、装置、计算机设备和存储介质 | |
US20190220329A1 (en) | Multi-application-oriented user data management method and system | |
CN112016122A (zh) | 网页数据处理方法、装置、计算机设备及存储介质 | |
CN112632375A (zh) | 会话信息处理方法、服务器及存储介质 | |
CN112528201A (zh) | 调用第三方平台的方法、装置、计算机设备和存储介质 | |
CN113127929B (zh) | 数据脱敏方法、脱敏规则处理方法、装置、设备及存储介质 | |
CN112637338B (zh) | 一种物联网节点服务管理方法、装置、设备及存储介质 | |
CN113672894A (zh) | 针对验证码请求的数据处理方法、装置、设备及存储介质 | |
CN112948849A (zh) | 一种轻量级数据权限控制方法、装置及电子设备 | |
CN116887264A (zh) | 面向共享卫星的星上多用户接入管控方法、装置和设备 | |
CN113282400B (zh) | 基于接口路由的应用发布方法、装置、设备及存储介质 | |
CN113360889B (zh) | 权限管理方法和装置、服务器、计算机可读存储介质 | |
CN114372188A (zh) | 一种权限控制方法、装置、设备以及存储介质 | |
CN112035379B (zh) | 存储空间的使用方法、装置、存储介质以及电子装置 | |
CN114884964A (zh) | 基于Tuxedo架构的业务风控方法和系统 | |
CN113489773A (zh) | 数据接入方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210611 |