数据权限处理方法、装置及服务器与流程

文档序号:29437490发布日期:2022-03-30 09:15阅读:181来源:国知局
数据权限处理方法、装置及服务器与流程

1.本技术涉及数据处理技术领域,尤其涉及一种数据权限处理方法、装置及服务器。


背景技术:

2.现有技术中,各个系统都需要进行权限设计,权限设计分为功能权限和数据权限,其中,数据权限指在平台或者信息系统,不同身份的用户所能看到或者编辑的数据范围是不同的,例如,业务经理只能看到自己的客户数据,但是业务总监可以查看到各个区域业务员的客户数据。
3.目前数据权限实现方案主要有:1、sql语言实现数据权限,通过where语句指定用户能看到数据的前提条件;2、配置法,通过配置表记录用户不同身份能看到数据的条件,然后把条件按照or或者and的逻辑关系进行拼接,生成对应的sql语句,然后执行sql语句得到结果。现有的数据权限实现方案本质都是sql语句拼接权限条件,按照权限条件进行过滤得到结果,但这种sql语句拼接是业务侵入式的,必须在原有的业务sql语句再嵌套一层权限查询的条件。这种权限实现方式必须对原有的无权限的业务接口进行改造,才能实现数据权限,这种业务侵入是有代价,并且sql and/or的拼接也极其麻烦。


技术实现要素:

4.为了解决上述技术问题,本技术实施例提供了一种数据权限处理方法、装置及服务器。
5.第一方面,本技术实施例提供了一种数据权限处理方法,所述方法包括:
6.获取当前用户账号的业务角色列表;
7.根据所述业务角色列表确定所述当前用户账号的资源策略;
8.对所述当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据。
9.可选的,所述获取当前用户账号的业务角色列表之前,所述方法还包括:
10.建立至少一个角色,对各角色配置至少一资源属性条件;
11.对各资源属性条件配置对应的资源策略;
12.对各用户账号分配至少一个角色,根据各用户账号的角色生成各用户账号的业务角色列表。
13.可选的,所述根据所述业务角色列表确定所述当前用户账号的资源策略,包括:
14.获取所述业务角色列表中的角色对应的目标资源策略,所述目标资源策略包括角色断言;
15.确定各目标资源策略的角色断言是否为真;
16.将角色断言为真的目标资源策略作为所述当前用户账号的资源策略。
17.可选的,所述当前用户账号的资源策略包括角色断言,所述角色断言包括数据确定语句;
18.所述当前用户账号的资源策略对应的资源数据的获取,包括:根据所述数据确定语句获取对应的目标资源属性条件,所述目标资源属性条件包括资源条件表达式,所述资源条件表达式包括:资源条件键、操作符和资源条件值;
19.根据所述资源条件键、操作符和资源条件值确定对应的资源数据。
20.可选的,所述资源条件键包括资源关联关系表达式,所述资源关联关系表达式通过关联操作符将至少两个不同资源进行关联;
21.所述根据所述资源条件键、操作符和资源条件值确定对应的资源数据,包括:
22.根据所述资源关联关系表达式确定不同资源之间的资源关联关系;
23.根据所述资源关联关系、操作符和资源条件值确定对应的资源数据。
24.可选的,所述方法还包括:
25.根据用户业务条件对所述授权资源数据进行过滤处理,得到业务资源数据。
26.第二方面,本技术实施例提供了一种数据权限处理装置,所述装置包括:
27.获取模块,用于获取当前用户账号的业务角色列表;
28.确定模块,用于根据所述业务角色列表确定所述当前用户账号的资源策略;
29.运算模块,用于对所述当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据。
30.第三方面,本技术实施例提供了一种服务器,包括存储器以及处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行第一方面提供的数据权限处理方法。
31.第四方面,本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面提供的数据权限处理方法。
32.上述本技术提供的数据权限处理方法、装置及服务器,获取当前用户账号的业务角色列表;根据所述业务角色列表确定所述当前用户账号的资源策略;对所述当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据。这样,根据当前用户账号的业务角色列表确定当前用户账号的资源策略;然后对当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据,无需拼接数据权限相关的sql语句,也不用改变应用层调用数据的逻辑,可以实现业务无侵入式的数据权限授权,而且资源策略的内容丰富灵活,可对资源策略进行配置或者扩展,大大方便了各种业务需求对接,简化数据权限的授权处理步骤,提高数据权限的授权处理效率。
附图说明
33.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对本技术保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
34.图1示出了本技术实施例提供的数据权限处理方法的一流程示意图;
35.图2示出了本技术实施例提供的角色、资源属性条件和资源策略的对应关系的一示意图;
36.图3示出了本技术实施例提供的资源策略的选择过程的一流程示意图;
37.图4示出了本技术实施例提供的资源条件表达式的一结构示意图;
38.图5示出了本技术实施例提供的数据权限处理装置的一结构示意图。
具体实施方式
39.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
40.通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
41.在下文中,可在本技术的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
42.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
43.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本技术的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本技术的各种实施例中被清楚地限定。
44.实施例1
45.本公开实施例提供了一种数据权限处理方法。
46.具体的,参见图1,数据权限处理方法包括:
47.步骤s101,获取当前用户账号的业务角色列表。
48.在一实施方式中,数据权限处理方法可以应用于服务器,服务器可以安装有数据库。需要补充说明的是,权限可以通过权限四元组{r1,r2,a,c}来描述一个完整的授权上下文信息,其中r1代表角色(role,who),r2代表资源(resource,what),a代表行为(action,how),c代表条件(condition,when),例如:在三八妇女节这天(condition),女同事(role)可以领到(action)电影票(resource)。数据权限主要是对资源(resource)的权限表达。在一实施方式中,用户的角色权限可以沿用rbac模型,数据权限可以沿用基于资源属性的abac模型。
49.在一实施方式中,可以根据用户身份对用户账号配置对应的业务角色列表,用户身份可以根据公司身份确定,例如,用户身份可以为公司经理、技术总监。用户可以根据业务需求确定多个不同的角色,各个角色需要查看对应的业务数据。当用户登录用户账号,则可以将登录的用户账号作为当前用户账号,根据当前用户账号可以从数据库中确定对应的业务角色列表。
50.在一实施方式中,步骤s101之前,数据权限处理方法还可以包括以下步骤:
51.建立至少一个角色,对各角色配置至少一资源属性条件;
52.对各资源属性条件配置对应的资源策略;
53.对各用户账号分配至少一个角色,根据各用户账号的角色生成各用户账号的业务角色列表。
54.请参阅图2,如图2所示,建立角色1、角色2、角色3,对角色1配置资源属性条件1,具体的,资源属性条件1为id=1。对角色2配置资源属性条件2,具体的,资源属性条件2为id=2。对角色3配置资源属性条件3,具体的,资源属性条件3为id=3。对资源属性条件1配置资源策略1,对资源属性条件2配置资源策略2,对资源属性条件3配置资源策略3。可以根据业务需求注册多个用户账号,为各个用户账号分配至少一个角色,例如,用户账号1拥有角色1和角色2,用户账号2拥有角色2和角色3。
55.这样,可以预先为用户账号生成对应的业务角色列表,方便后续根据业务角色列表进行数据权限管理过程。
56.步骤s102,根据所述业务角色列表确定所述当前用户账号的资源策略。
57.在一实施方式中,可以预先获取角色与资源策略的对应关系,查找角色与资源策略的对应关系,确定业务角色列表中的各角色对应的资源策略。
58.资源策略包括角色断言,角色断言包括条件判断语句和数据确定语句,条件判断语句用于判断资源策略是否对用户账号生效,数据确定语句用于确定资源策略所指示的资源数据。
59.请再次参阅图2,图2所示的角色包括角色1、角色2、角色3,角色1对应的资源策略为资源策略1,角色2对应的资源策略为资源策略2、角色3对应的资源策略为资源策略3。资源策略1中的角色断言为如果角色列表包含角色1,则返回资源属性条件id=1的资源数据。资源策略2中的角色断言为如果角色列表包含角色2,则返回资源属性条件id=2的资源数据。资源策略3中的角色断言为如果角色列表包含角色3,则返回资源属性条件id=3的资源数据。举例来说,在图2中,资源条件表达式可以为资源身份标识,具体的,资源身份标识可以用id=1,id=2,id=3进行表示。
60.需要说明的是,角色断言也可以是其他形式的语句,可以将其他判断语句作为角色断言语句,在此不做限制。
61.请参阅图3,若当前用户账号的业务角色列表包括角色1和角3,则资源策略1中的角色断言为真,资源策略3中的角色断言为真,当前用户账号只能访问到资源身份标识id=1、id=3的资源数据。
62.这样,整个资源策略的获取效率非常高效且操作步骤简单,没有复杂的过程。
63.在一实施方式中,步骤s102可以包括以下步骤:
64.获取所述业务角色列表中的角色对应的目标资源策略,所述目标资源策略包括角色断言;
65.确定各目标资源策略的角色断言是否为真;
66.将角色断言为真的目标资源策略作为所述当前用户账号的资源策略。
67.举例来说,请再次参阅图3,若当前用户账号的业务角色列表包括角色1和角3,则目标资源策略为资源策略1和资源策略3,判断资源策略1中的角色断言是否为真,资源策略3中的角色断言是否为真,若资源策略1中的角色断言为真,资源策略3中的角色断言为真,
则将资源策略1、资源策略3作为所述当前用户账号的资源策略。
68.步骤s103,对所述当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据。
69.在本实施例中,无需拼接数据权限相关的sql,也不用改变应用层调用数据的逻辑,可以实现业务无侵入式的数据权限,而且数据权限的条件表达丰富灵活可配置可扩展,不需要写固定的代码,大大方便了各种业务需求对接。
70.在一实施方式中,步骤s103可以包括以下步骤:
71.对所述当前用户账号的资源策略对应的资源数据进行逻辑与运算、逻辑或运算和逻辑非运算,得到所述当前用户账号的授权资源数据。
72.举例来说,所述当前用户账号的资源策略包括资源策略1和资源策略3,资源策略1的资源数据为数据表中1、3、4行数据,资源策略3的资源数据为数据表中2、3、4行数据,将数据表中1、3、4行数据、数据表中2、3、4行数据进行逻辑与运算后,得到数据表中3、4行数据为授权资源数据。
73.这样,可以快速确定当前用户账号的授权资源数据,避免数据权限错误。
74.在一实施方式中,所述当前用户账号的资源策略包括角色断言,所述角色断言包括数据确定语句;所述当前用户账号的资源策略对应的资源数据的获取,可以包括以下步骤:
75.根据所述数据确定语句获取对应的目标资源属性条件,所述目标资源属性条件包括资源条件表达式,所述资源条件表达式包括:资源条件键、操作符和资源条件值;
76.根据所述资源条件键、操作符和资源条件值确定对应的资源数据。
77.请参阅图4,资源条件表达式包括资源条件键(key)、操作符合资源条件值(value),操作符可以为大于符号、小于符号、等于符号等操作符号。资源条件表达式等价于资源条件key在对应的操作符下是什么值,例如用户只能查看转速大于100的设备,则资源条件表达为:设备的额定转速》100。
78.举例来说,若角色断言为“如果角色列表包含角色1,则返回设备的额定转速》100的数据”,其中,“返回设备的额定转速》100的数据”为数据确定语句,“如果角色列表包含角色1”为条件判断语句。根据数据确定语句“返回设备的额定转速》100的数据”确定目标资源属性条件为“设备的额定转速》100”,直接获取转速大于100的设备作为授权资源数据。
79.请再次参阅图2,若角色断言为“如果角色列表包含角色1,则返回资源属性条件id=1的资源数据”,其中,“返回资源属性条件id=1的资源数据”为数据确定语句,“如果角色列表包含角色1”为条件判断语句。根据数据确定语句“返回资源属性条件id=1的资源数据”确定目标资源属性条件为“id=1”,直接获取id=1的资源数据作为授权资源数据。
80.这样,资源属性条件可以为资源条件表达式、资源身份标识,表达丰富灵活可配置可扩展,提高资源属性条件的灵活度。
81.在一实施方式中,资源条件键包括资源关联关系表达式,所述资源关联关系表达式通过关联操作符将至少两个不同资源进行关联;所述根据所述资源条件键、操作符和资源条件值确定对应的资源数据,包括:
82.根据所述资源关联关系表达式确定不同资源之间的资源关联关系;
83.根据所述资源关联关系、操作符和资源条件值确定对应的资源数据。
84.补充说明的是,资源条件key可以支持跟资源有关联关系的属性表达,资源条件键可以包括资源关联关系表达式,具体的,所述资源关联关系表达式通过关联操作符将至少两个不同资源进行关联,关联操作符包括子关联标识符以及子关联操作符,子关联标识符可以为“.关联.”,子关联操作符可以设为“=”。可简单概括为:资源.关联.资源的属性,例如用户只能查看设备所在组织是事业部1的设备,设备与组织是一个关联关系,则资源关联关系可以表达为:设备.关联.组织的名称=事业部1。也可以有3个以上的资源进行关联,在此不做限制。
85.举例来说,若角色断言为“如果角色列表包含角色1,则返回设备.关联.组织的名称=事业部1且设备的额定转速》100的数据”,其中,“返回设备.关联.组织的名称=事业部1且设备的额定转速》100的数据”为数据确定语句,“如果角色列表包含角色1”为条件判断语句。根据数据确定语句“返回设备.关联.组织的名称=事业部1且设备的额定转速》100的数据”确定目标资源属性条件为“设备.关联.组织的名称=事业部1的设备、且设备额定转速》100的数据”,也就是说,相当于满足两个条件,条件1:设备.关联.组织的名称=事业部1;条件2:设备的额定转速》100。其中,“设备.关联.组织的名称=事业部1”表示资源关联关系,直接获取设备所在组织是事业部1的设备中转速大于100的设备作为授权资源数据。
86.这样,资源属性条件可以通过资源条件表达式、资源身份标识进行表达,此外,资源属性条件不仅支持资源本身的属性表达,而且还支持跟资源有关联关系的属性表达,表达丰富灵活可配置可扩展。
87.在一实施方式中,数据权限处理方法还可以包括以下步骤:
88.根据用户业务条件对所述授权资源数据进行过滤处理,得到业务资源数据。
89.在一实施例中,用户可以通过当前用户账号输入用户业务条件,对授权资源数据进行过滤处理,例如,授权资源数据包括事业部1的财务数据1、事业部2的财务数据2、事业部3的财务数据3,若用户业务条件为查看事业部2的财务数据2,则从事业部1的财务数据1、事业部2的财务数据2、事业部3的财务数据3中过滤到财务数据1和财务数据3,返回财务数据2。
90.这样,可以通过用户业务条件对授权资源数据进行过滤,得到业务资源数据,满足用户个性化需求,提供业务资源数据的处理速度。
91.本实施例提供的数据权限处理方法,获取当前用户账号的业务角色列表;根据所述业务角色列表确定所述当前用户账号的资源策略;对所述当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据。这样,根据当前用户账号的业务角色列表确定当前用户账号的资源策略;然后对当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据,无需拼接数据权限相关的sql语句,也不用改变应用层调用数据的逻辑,可以实现业务无侵入式的数据权限授权,而且资源策略的内容丰富灵活,可对资源策略进行配置或者扩展,大大方便了各种业务需求对接,简化数据权限的授权处理步骤,提高数据权限的授权处理效率。
92.实施例2
93.此外,本公开实施例提供了一种数据权限处理装置。
94.具体的,如图5所示,数据权限处理装置500包括:
95.获取模块501,用于获取当前用户账号的业务角色列表;
96.确定模块502,用于根据所述业务角色列表确定所述当前用户账号的资源策略;
97.运算模块503,用于对所述当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据。
98.在一实施方式中,数据权限处理装置500还包括:
99.配置模块,用于建立至少一个角色,对各角色配置至少一资源属性条件;
100.对各资源属性条件配置对应的资源策略;
101.对各用户账号分配至少一个角色,根据各用户账号的角色生成各用户账号的业务角色列表。
102.在一实施方式中,确定模块502,还用于获取所述业务角色列表中的角色对应的目标资源策略,所述目标资源策略包括角色断言;
103.确定各目标资源策略的角色断言是否为真;
104.将角色断言为真的目标资源策略作为所述当前用户账号的资源策略。
105.在一实施方式中,所述当前用户账号的资源策略包括角色断言,所述角色断言包括数据确定语句;
106.数据权限处理装置500还包括:
107.处理模块,用于根据所述数据确定语句获取对应的目标资源属性条件,所述目标资源属性条件包括资源条件表达式,所述资源条件表达式包括:资源条件键、操作符和资源条件值;
108.根据所述资源条件键、操作符和资源条件值确定对应的资源数据。
109.在一实施方式中,所述资源条件键包括资源关联关系表达式,所述资源关联关系表达式通过关联操作符将至少两个不同资源进行关联;
110.处理模块,还用于根据所述资源关联关系表达式确定不同资源之间的资源关联关系;
111.根据所述资源关联关系、操作符和资源条件值确定对应的资源数据。
112.在一实施方式中,运算模块503,还用于对所述当前用户账号的资源策略对应的资源数据进行逻辑与运算、逻辑或运算和逻辑非运算,得到所述当前用户账号的授权资源数据。
113.在一实施方式中,数据权限处理装置500还包括:
114.过滤模块,用于根据用户业务条件对所述授权资源数据进行过滤处理,得到业务资源数据。
115.本实施例提供的数据权限处理装置500可以执行实施例1所提供的数据权限处理方法的步骤,为避免重复,在此不再赘述。
116.本实施例提供的数据权限处理装置,获取当前用户账号的业务角色列表;根据所述业务角色列表确定所述当前用户账号的资源策略;对所述当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据。这样,根据当前用户账号的业务角色列表确定当前用户账号的资源策略;然后对当前用户账号的资源策略对应的资源数据进行与或非逻辑运算,得到所述当前用户账号的授权资源数据,无需拼接数据权限相关的sql语句,也不用改变应用层调用数据的逻辑,可以实现业务无侵入式的数据权限授权,而且资源策略的内容丰富灵活,可对资源策略进行配置或者扩展,大大方便了
各种业务需求对接,简化数据权限的授权处理步骤,提高数据权限的授权处理效率。
117.实施例3
118.本公开实施例提供了一种服务器,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例1所提供的数据权限处理方法。
119.本实施例提供的服务器可以执行实施例1所提供的数据权限处理方法的步骤,为避免重复,在此不再赘述。
120.实施例4
121.此外,本公开实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行实施例1所提供的数据权限处理方法。
122.本实施例提供的计算机可读存储介质可以执行实施例1所提供的数据权限处理方法的步骤,为避免重复,在此不再赘述。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1