【数据库设计-2】权限设计-系统登录用户权限设计

需求分析---场景


假设需要为公司设计一个人员管理系统,并为各级领导及全体员工分配系统登录账号。有如下几个要求:

1. 权限等级不同:公司领导登录后可查看所有员工信息,部门领导登录后只可查看本部门员工的信息,员工登录后只可查看自己的信息;

2. 访问权限不同:如公司领导登录后,可查看员工薪水分布界面,而员工则不能看到;

3. 操作权限不同:如系统管理员可以在信息发布界面进行增删改查发布信息,而普通员工只可以在信息发布界面进行查看,不能修改、删除和新增。

功能分析


1. 登录一个系统,基本都需要用户输入用户名、密码;

2. 每个用户的角色不同,则其访问权限一般也不同,如:

系统管理员:可以查看所有界面;

普通用户:只能查看部分界面。

3. 不同的用户,即使可以查看同样的界面,但在该界面上可进行的操作权限也不同,如:

用户1:可以在界面1上进行增删改查;

用户2:只可以在界面1上查看,不具备增删改功能;

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. 普通员工:查找<员工信息表.公司标识==该用户.公司标识 && 

                                  员工信息表.部门标识==该用户.部门标识 && 

                                  员工信息表.员工标识==该用户.公司标识>的所有用户;


来自为知笔记(Wiz)

时间: 2024-10-14 08:48:30

【数据库设计-2】权限设计-系统登录用户权限设计的相关文章

权限设计-系统登录用户权限设计

需求分析-场景 假设需要为公司设计一个人员管理系统,并为各级领导及全体员工分配系统登录账号.有如下几个要求: 1. 权限等级不同:公司领导登录后可查看所有员工信息,部门领导登录后只可查看本部门员工的信息,员工登录后只可查看自己的信息: 2. 访问权限不同:如公司领导登录后,可查看员工薪水分布界面,而员工则不能看到: 3. 操作权限不同:如系统管理员可以在信息发布界面进行增删改查发布信息,而普通员工只可以在信息发布界面进行查看,不能修改.删除和新增. 功能分析 1. 登录一个系统,基本都需要用户输

权限组件之将登录用户权限写入到session中

1.登入admin,将销售员的权限改成只能查看订单列表 2.urls.py 3.views.py  这样的情况任何人都能访问 思考问题,怎么给页面加权限???? 将登录用户权限写入到session中 4.将登入用户权限列表写入到session里面.   session = { "user_id":1, "permission_list":['/users/', '/orders/'] } 5.访问用户列表.用户订单的时候,去session里面取值  (权限列表) 判

sql server 2008 数据库管理系统使用SQL语句创建登录用户详细步骤

--服务器角色:--固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL Server,且不能更改分配给它们的权限. --可以在数据库中不存在用户帐户的情况下向固定服务器角色分配登录.--按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述:--1.Bulkadmin:这个服务器角色的成员可以运行BULKINSERT语句.这条语句允许从文本文件中将数据导入到SQLServer 2008数据库中,-- 为需要执行大容量插入到

Ubuntu系统添加用户权限

一.首先创建一个新用户: sudo adduser hadoop 其次设置密码: sudo passwd hadoop 如果无法使用root密码,请输入如下命令: sudo passwd root 二.更改用户权限sudo, 更改/etc/sudosers文件 cd /etc sudo vim /etc/sudosers 添加 hadoop ALL=(ALL:ALL) ALL 三.删除用户 sudo userdel -r hadooop 原文地址:https://www.cnblogs.com/

linux 系统登录用户操作记录

1,mkdir /usr/local/proxy cat proxy #!/bin/bashUser=$USERIp=${SSH_CLIENT%% *}Date="`date +%Y-%m-%d`"Logfile=/var/log/myaudit/${User}_${Ip}_${Date}.log#export Logfile=/var/log/myaudit/${User}_${Ip}_${Date}.logexport PROMPT_COMMAND='{ date "+%

判断当前系统登录用户_shell脚本

#!/bin/bash#user=`whoami`if [ "$user" == "root" ];then    echo "root is super user"else    echo "$user is a normal user"fi

权限管理之获取用户权限信息

对象的本质是id值 原文地址:https://www.cnblogs.com/jintian/p/11255265.html

RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-&gt;WinForm版本新增新的用户权限设置界面

在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色.用户可访问的模块(菜单)与相应的操作权限.需要给某些角色添加与移除相应的用户等等,如果没有一个灵活可靠的配置管理工具将会使权限控制变得十分麻烦.用户授权管理模块就是为了方便用户.角色权限的集中统一管理而开发的模块.在用户授权管理模块,操作员可以添加或移动用户到指定的角色.可以分配或授予指定用户的模块(菜单)的访问权限.可以收回或分配指定用户的操作(功能)权限.可以对所有用户.角色.模块(菜单).操作(功能

RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-&gt; Web版本新增新的用户权限设置界面

在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色.用户可访问的模块(菜单)与相应的操作权限.需要给某些角色添加与移除相应的用户等等,如果没有一个灵活可靠的配置管理工具将会使权限控制变得十分麻烦.用户授权管理模块就是为了方便用户.角色权限的集中统一管理而开发的模块.在用户授权管理模块,操作员可以添加或移动用户到指定的角色.可以分配或授予指定用户的模块(菜单)的访问权限.可以收回或分配指定用户的操作(功能)权限.可以对所有用户.角色.模块(菜单).操作(功能