一种用户及其多角色相结合的权限控制方法

文档序号:28687189发布日期:2022-01-29 10:51阅读:314来源:国知局
一种用户及其多角色相结合的权限控制方法

1.本发明涉及信息系统权限管理技术领域,具体涉及一种用户及其多角色相结合的权限控制方法。


背景技术:

2.随着软件信息系统从桌面型发展至互联网大型应用,信息安全变得越来越重要,系统功能、数据权限有效控制手段必须适应新的发展形势。
3.基于传统桌面型、局域网软件信息系统因其应用面较窄,用户数量较少,系统权限配置往往仅针对具体用户进行,工作量不大,随着互联网快速发展,各种传统软件信息系统升级优化至互联网版本,用户数量急剧增加,仅针对具体用户进行系统权限配置重复操作较多,管理效率低下,系统设计者提出系统角色的概念,系统建立自定义角色并仅针对角色进行系统权限配置,只需给用户设置所属角色就可完成系统权限配置,大大减少了配置工作量,但同时又带来了一个新的弊端,即仅依靠角色统一配置权限,使用户权限配置过于拘泥,往往碰到一些需要特殊权限的用户不能灵活处理。
4.本文主要是设计一种用户及其多角色相结合的权限控制方法,以解决以上问题。


技术实现要素:

5.针对上述情况,本文设计一种用户及其多角色相结合的权限控制方法,既解决大量用户权限配置工作量大的问题,又可避免仅依靠角色统一配置权限的灵活性不足问题。
6.为解决以上问题,本发明的技术方案为:一种用户及其多角色相结合的权限控制方法,具体如下:
7.判断用户操作指令类别,当用户操作为数据表建立时,执行数据表建立过程;当用户操作为角色信息维护时,执行角色信息维护过程;当用户操作为登录时,执行用户登录过程;
8.所述数据表建立过程如下:
9.根据需求至少建立如下数据表:系统菜单表、菜单功能表、角色信息表、角色权限表、用户信息表、用户角色信息表、用户私有权限表;
10.所述角色信息维护过程包括如下步骤:
11.步骤a1:在角色信息表中建立角色基础信息,在用户信息表中建立用户基础信息;
12.步骤a2:给角色分配菜单数据表的功能项:将角色与分配的菜单及菜单功能项做笛卡尔积,获得角色菜单功能权限值,并存储进角色权限表;
13.步骤a3:给用户分配角色:将用户与分配的角色做笛卡尔积,获得用户角色信息值,并存储进用户角色信息表;
14.步骤a4:给用户分配私有权限:将用户与分配的菜单数据表的功能项做笛卡尔积,获得用户私有权限值,并存储进用户私有权限表;
15.所述用户登录过程如下:
16.根据用户登录信息,获取用户对应的用户私有权限值、用户角色信息值,通过用户角色信息值获取用户对应的角色菜单功能权限值,
17.将用户私有权限值与角色菜单功能权限值进行或运算,根据计算结果反馈用户所拥菜单,用于展示。
18.进一步地,所述系统菜单表至少包括:菜单标识、菜单名称;
19.所述菜单功能表至少包括:菜单标识、功能序号、功能名称;
20.所述角色信息表至少包括:角色标识、角色名称;
21.所述角色权限表至少包括:角色标识、菜单标识、权限值;
22.所述用户信息表至少包括:用户标识、用户名称、密码;
23.所述用户角色信息表至少包括:用户标识、角色标识;
24.所述用户私有权限表至少包括:用户标识、菜单标识、权限值。
25.进一步地,所述角色菜单功能权限值、用户角色信息值、用户私有权限值均为二进制数。
26.进一步地,所述角色菜单功能权限值、用户角色信息值、用户私有权限值经对称加密后存储。
27.进一步地,所述角色菜单功能权限值、用户角色信息值、用户私有权限值加密方法为:将所述角色菜单功能权限值、用户角色信息值、用户私有权限值分别转换成十进制数,再进行对称加密。
28.有益效果
29.本发明提供了一种用户及其多角色相结合的权限控制方法,与现有公知设计技术相比,本发明具有如下有益效果:
30.本发明通过系统预先自定义若干系统角色及其权限,设置具体用户所属角色,同时可对特殊具体用户进行私有权限设置,这样既减少了大量用户权限配置工作量,又避免了仅依靠角色统一配置权限的拘泥;通过借助二进制比特位(0、1)特性进行权限值获取与解析,以及十进制转换加密操作,减少了存储空间,提升了权限数据的安全性。
附图说明
31.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
32.图1为本发明具体实施例中用户权限控制总体流程图;
33.图2为本发明具体实施例中权限配置时权限值生成流程图;
34.图3为本发明具体实施例中用户实际权限值运算流程图;
35.图4为本发明具体实施例中角色权限配置操作界面示意图;
36.图5为本发明具体实施例中用户权限配置操作界面示意图。
具体实施方式
37.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没
有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.如图1所示,本发明一种用户及其多角色相结合的权限控制方法,主要包括如下步骤:
39.步骤1:建立数据表,主要有:系统菜单表、菜单功能表、角色信息表、角色权限表、用户信息表、用户角色信息表、用户私有权限表。其中系统菜单表至少包括以下几个属性:菜单标识、菜单名称;菜单功能表至少包括以下几个属性:菜单标识、功能序号、功能名称;角色信息表至少包括以下几个属性:角色标识、角色名称;角色权限表至少包括以下几个属性:角色标识、菜单标识、权限值;用户信息表至少包括以下几个属性:用户标识、用户名称、密码;用户角色信息表至少包括以下几个属性:用户标识、角色标识;用户私有权限表至少包括以下几个属性:用户标识、菜单标识、权限值。
40.步骤2:根据具体案例系统维护系统菜单m={m1,m2,

,mn}及其功能项mf={(m1,f1),(m1,f2),(m1,f3),

,(m1,fn),

,(mn,fn)}的数据。例如,m={角色管理,用户管理,

},mf={(角色管理,使用),(角色管理,新增),(角色管理,修改),(角色管理,删除),(角色管理,权限设置),(用户管理,使用),(用户管理,新增),(用户管理,修改),(用户管理,删除),(用户管理,所属角色设置),(用户管理,私有权限设置),

}。
41.步骤3:维护系统角色信息并配置其系统菜单功能权限。根据具体案例系统业务需要维护系统角色r={r1,r2,

,rn},将角色集合r与菜单集合m做笛卡尔积,得出角色菜单功能权限结果p={p(r1),p(r2),

,p(rn)}。例如,菜单m1具有功能项f1、f2、f3、f4,设置角色r1具有其f1、f3、f4权限,根据设置生成二进制文本1011(与权限项一一对应),文本转换为十进制权限值11;设置角色r2具有其f2、f3、f4权限,根据设置生成二进制文本0111,文本转换为十进制权限值7;r1与r2权限值加密存储至角色权限表。
42.步骤4:维护系统用户信息并配置其所属角色。维护系统用户u={u1,u2,

,un},根据用户所属角色的设置,将用户集合u与角色集合r做笛卡尔积,得出用户所属角色结果ur={(u1,r1),(u2,r2),

,(un,rn)}。例如,设置用户u1具有角色r1,r2角色,进行笛卡尔积运算则产生ur={(u1,r1),(u2,r2)},存储至用户角色信息表。
43.步骤5:配置系统用户私有功能权限。将用户集合u与菜单集合m做笛卡尔积,得出用户菜单功能权限结果p={p(u1),p(u2),

,p(un)}。例如,设置用户u1具有菜单m1的f1、f2、f3私有权限,根据设置生成二进制文本1110,文本转换为十进制权限值14,加密存储至用户私有权限表。
44.步骤6:用户登录系统,将其私有权限值与所属角色权限值进行或运算,利用运算结果集对系统菜单功能项进行权限控制。以步骤(4)、(5)中用户u1为例,先从用户私有权限表获取u1解密权限值p(u1)=14,再从用户角色信息表获取其所属角色r1,r2,遍历角色,从角色权限表取得权限值p(r1)=11,p(r2)=7,则用户u1最终权限p(u1)={p(r1),p(r2),p(u1)}=15,转换为二进制字符串1111,则表示用户u1对菜单m1具有f1、f2、f3、f4的权限。
45.以下通过具体的实施例对本发明一种用户及其多角色相结合的权限控制方法进行详细说明。
46.如图2-5所示,本实施例一种用户及其多角色相结合的权限控制方法,对具体案例系统菜单模块ai(i=1..n)进行权限分配与控制。假设ai模块需要控制权限项fj(j=1..n)有f1(使用)、f2(新增)、f3(修改)、f3(删除)、f4(打印)、f5(归档)、f6(部门数据访问)、f7(全部
数据访问),所述方法包括如下步骤:
47.(1)系统超级管理员登录系统,进入系统管理模块;
48.(2)新建角色rk(k=1..n)。设置其系统模块ai的权限,比如具有f1(使用)、f3(修改)、f4(打印)、f6(部门数据访问)权限,根据设置生成二进制文本10101010(比特位位置与权限项下标一一对应),文本转换为十进制数值170,加密存储;
49.(3)新建角色r
k+1
(k=1..n)。设置其系统模块ai的权限,比如具有f1(使用)、f2(新增)、f3(删除)、f4(打印)、f5(归档)权限,根据设置生成二进制文本11011100,文本转换为十进制数值220,加密存储;
50.(4)新建系统用户u。设置其所属角色为rk和r
k+1
;设置其系统模块ai的私有权限,比如具有f7(所有数据访问)权限,根据私有设置生成二进制文本00000001,文本转换为十进制数值1,加密存储;
51.(5)以上步骤完成了用户u的系统模块ai的权限分配。用户u登录系统;
52.(6)登录验证通过后进行权限运算。先遍历用户u所属角色,获取角色rk和r
k+1
对系统模块ai的解密十进制权限数值,对两个数值170和220进行或运算,结果为254;获取用户u对系统模块ai的解密私有权限数值1,与角色运算结果254再次进行或运算,结果为255;255即为用户u对系统模块ai的最终权限值,转换为二进制文本(11111111),解析此文本,结果为用户u对系统模块ai具有f1(使用)、f2(新增)、f3(修改)、f3(删除)、f4(打印)、f5(归档)、f6(部门数据访问)、f7(全部数据访问)权限。
53.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1