权限设计-系统登陆用户权限设计
权限设计-系统登陆⽤户权限设计
需求分析-场景:
假设需要为公司设计⼀个⼈员管理系统,并为各级领导及全体员⼯分配系统登录账号.有如下⼏个要求:
1.权限等级不同:公司领导登录后可查看所有员⼯信息,部门领导登录后只可查看部门员⼯信息,员⼯登录后只可查看⾃⼰的信息. 
2.访问权限不同;如公司领导登录后,可查看员⼯薪⽔分布界⾯,⽽员⼯则不能看到;
3.操作权限不同:如系统管理员可以在信息发布界⾯进⾏增删改查发布信息,⽽普通员⼯只可以在信息发布界⾯进⾏查看,不能修改.删除和新增.
功能分析
1.登录⼀个系统,基本都要输⼊⽤户名,密码;
2.每个⽤户的⾓⾊不同,则其访问权限⼀般也不同,,如:系统管理员:可查看所有界⾯;普通⽤户:只能查看部分界⾯.
3.不同的⽤户,及时可以查看同样的界⾯,但在该界⾯上可进⾏的操作权限也不同,如
⽤户1:可在界⾯1上进⾏增删改查;
⽤户2:只可以在界⾯以上查看,不具备增删改功能;
4.不同⽤户基本都对应不同的⾓⾊,如:⽤户1.⽤户2分别对应管理员⾓⾊,操作员⾓⾊,⾓⾊之间也存在权限等级的差异,如:
⾓⾊1:对应省级管理员; ==>可以查看该省下的所有学校信息;
⾓⾊2:对应实际管理员;==>可以查看该市下的所有学校信息;
⾓⾊3:对应县级管理员:==>可以查看该县下的所有学校信息;
不管是省.市.县哪个系统管理员,他们可访问的界⾯都是相同的(即访问权限相同),且在每个界⾯上可进⾏的操作权限也相同,不同的管理员⾓⾊可以访问的学校个数和学校的范围不同,这⾥称这种不同为:权限等级不同.
总结:
从上⾯的分析中,主要涉及以下⼏个概念:
1.⾓⾊:
系统管理员⾓⾊
系统操作员⾓⾊
普通⽤户⾓⾊;不同的⾓⾊,其访问权限是不同的,即可访问的模块(界⾯)集合是不同的;⾓⾊的权限等级也不同,权限等级如:公司领导,部分领导,普通员⼯
2.模块(界⾯)模块就是指具体的界⾯,每个模块上⼜有不同的操作,如:增删改查
3.访问权限:确定⾓⾊可以访问的模块(界⾯)集合
4.操作访问权限:确定可以在各个模块(界⾯)上进⾏操作集合如增删改查;
5.权限等级:即确定⾓⾊可以访问的范围,如:
⾓⾊1:权限等级为公司领导,则可以查看公司所有员⼯信息
⾓⾊2:权限等级为部门领导,则只可以查看该部门所有员⼯信息
数据库设计
总体模型:
1.模块定义表:
模块是分层级的,如:信息管理–>联系⽅式管理;
每个模块都有上级模块。
2. ⾓⾊定义表:
含有⾓⾊权限等级,⽤于为⾓⾊分配权限等级;
⾓⾊权限等级:是⼀个菜单选项,包括公司领导、部门领导、普通员⼯;
3.授权定义表:
⽤于给⾓⾊分配访问权限以及为每个模块分配操作权限;
1个⾓⾊可以含有多个模块,同样1个模块可以分配给多个⾓⾊,所以⾓⾊和模块是多对多的关系;这种多对多的关系可以使⽤关系表来实现,即通过联合主键和实现关系表:
表中含有字段“操作权限”,⽤于给每个界⾯分配操作权限,见下图:
若该模块有增删改查功能,则操作权限15,即⼆进制的“1111”,若该模块只有查看功能,则操作权限为2,即⼆进制的“0010”,同样
的,“0111”表⽰该模块有增、改、查功能;
4. 系统⽤户表:
该表中“⾓⾊权限等级”—>应与“所属⾓⾊”中的权限等级保持⼀致,之所以该表中重复该字段,是为了⽅便查询。
⾓⾊权限等级取值:
1. 公司领导:company_id不能为空;
2. 部门领导:company_id、dept_id不能为空;
3. 普通员⼯:company_id、dept_id、staff_id不能为空;
登录执⾏过程
1. 系统登录时,⾸先输⼊⽤户名、密码;
2. 确定访问权限:
2.1 判断该⽤户的“⾓⾊编号”;
2.2 在“授权定义表”中根据该“⾓⾊编号”查相应的模块,到的模块集合即是访问权限;
3. 确定操作权限:
3.1 在2.2步骤中查询到的每个模块都有相应的操作权限,即构成了每个模块的操作权限;
4. 确定权限等级:
4.1 结合该⽤户的“⾓⾊权限等级”+“公司标识”+“部门标识”+“员⼯标识”,到员⼯信息表中去查相应员⼯,具体如下:
⾓⾊权限等级取值:
1. 公司领导:查<;员⼯信息表.公司标识==该⽤户.公司标识>的所有⽤户;
2. 部门领导:查<;员⼯信息表.公司标识==该⽤户.公司标识 &&
取得管理员权限
员⼯信息表.部门标识==该⽤户.部门标识>的所有⽤户;
3. 普通员⼯:查<;员⼯信息表.公司标识==该⽤户.公司标识 &&
员⼯信息表.部门标识==该⽤户.部门标识 &&
员⼯信息表.员⼯标识==该⽤户.公司标识>的所有⽤户;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。