一个基于RBAC0的通用权限设计清单
注:RBAC0与RBAC1不同在于权限继承。关于RBAC1的权限设计,敬请关注作者后续CSDN博客。
1,用户表 保存系统用户信息,如张三、李四,字段可以有id、name、fullname、email、phone、……
2,角色表 保存角色信息,如学生、管理员,字段有id、name、……
3,权限表 保存系统的权限信息,可定义系统哪些模块公开,或者什么时段可访问,字段有id,权限名
4,用户角色表 关联用户和角色的关系表,如张三-学生,李四-管理员,字段有id、用户id、角色id,根据用户就知道所属的角色
5,用户权限表 用于单独针对用户赋权,字段信息: id,用户id, 权限id
6,菜单表 总体菜单信息 字段信息:菜单id,菜单fid,菜单名,菜单代码(用于同级、同目录菜单的排序),菜单类型(0-目录 1-模块),备注,目标位置
7,角色菜单表 用于关联角色和菜单、权限之间的关系。字段信息:id,菜单id,菜单fid,角色id,权限id
基本思路:
用户跟角色关联
角色跟菜单、权限关联
remark:与上一篇博客中版本不同的是,将角色与菜单、权限关联。取消了角色权限表、权限菜单表,取而代之的是一个角色菜单表。
权限模块内容
人员管理(增删改查)
添加人员信息
删除人员信息
修改人员信息
查看人员信息
权限管理
只有一个导航条,左边是人员,右边是权限功能.
关联模块:
公司管理(增删改查)
添加公司信息
删除公司信息
修改公司信息
查看公司信息(可省略,修改或者删除中可查询所有数据)
分部管理(增删改查)
添加人员信息
删除人员信息
修改人员信息
查看人员信息(可省略,修改或者删除中可查询所有数据)
职位管理(增删改查) 导航条模式二需要思考合理性
添加职位信息
职位信息管理 (包含了查询,和修改)
一个基于RBAC0的通用权限设计清单的更多相关文章
- 一个基于RBAC的通用权限设计清单
RBAC即角色访问控制(Role Based Access Control) RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,who.what.how构成了访问权限三元组 ...
- 多租户通用权限设计(基于casbin)
多租户通用权限设计(基于 casbin) 所谓权限控制, 概念并不复杂, 就是确认某个操作是否能做, 本质上仅仅就是个bool判断. 权限几乎是每个系统必不可少的功能, 和具体业务结合之后, 在系统中 ...
- 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心
基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...
- 基于RBAC模型的权限设计:如何设计系统权限体系?
一.什么是RABC RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来间接地赋予用户权限(如下图),从而 ...
- 一个基于POI的通用excel导入导出工具类的简单实现及使用方法
前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...
- 基于RBAC的权限设计模型
个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC).角色分级模型RBAC1(Hierarchal RBAC).角色限制模型RBAC2(Constraint RBAC)和统一模 ...
- 数据权限设计——基于EntityFramework的数据权限设计方案:一种设计思路
前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经 ...
- 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能.伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性.可用 ...
- RBAC 权限设计(转载)
来源 :https://blog.csdn.net/rocher88/article/details/43190743 这是我在网上找的一些设计比较好的RBAC权限管理 不知道,像新浪.搜狐.网易.百 ...
随机推荐
- 有关Java的优秀博客集锦
1. 在java编程中,多线程并发总有些疑惑:如为什么会产生并发?并发会有什么影响?java中提供了哪些处理并发的技术(机制) 关于并发产生的原因,我查了一些资料目前发现有两种原因:一,存在共享的资源 ...
- 快速反编绎jar war包
反编译这些class文件或jar包或war包,用TTools https://github.com/Supermax197/TTools [root@ok action]# tree /home/ok ...
- Java集合源码学习(五)几种常用集合类的比较
这篇笔记对几个常用的集合实现,从效率,线程安全和应用场景进行综合比较. >>ArrayList.LinkedList与Vector的对比 (1)相同和不同都实现了List接口,使用类似.V ...
- Myeclipse 2016 & 2014 下载
myeclipse-2016-ci-6-offline-installer-windowshttps://downloads.genuitec.com/downloads/myeclipse/inst ...
- python检测文件的MD5值
python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...
- Ajax 的 GET 和 POST 模式
Ajax 异步请求数据的方式有两种:GET 和 POST. 如果是 GET 模式,则直接将数据放置到异步请求的 URL 地址中,而 send() 方法不发送任何数据: var queryString ...
- [LeetCode] Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. pu ...
- 运维自动化之ansible的安装与使用(包括模块与playbook使用)(转发)
原文 http://dl528888.blog.51cto.com/2382721/1435415 我使用过puppet(地址是http://dl528888.blog.51cto.com/2382 ...
- thinkphp计划任务使用cronRun
thinkphp计划任务使用cronRun .先不管是是否是独立分组,必须在你项目名下的Conf文件夹内创建2个文件一个是tages.php 一个是 crons.php. 注意这两个文件名为think ...
- android studio常见错误
1.Failed to import new Gradle project: Could not install Gradle distribution from'http://services.gr ...