多系统权限设计

1.      多系统基于角色的权限设计

这种方案是最常见也是比较简单的方案,不过通常有这种设计已经够了,这种方案对于每一个操作不做控制,只是在程序中根据角色对是否具有操作的权限进行控制;这里我们就不做详述.此处采用角色关联模块的方式。

2.       多系统基于操作的权限设计

这种模式下每一个操作都在数据库中有记录,用户是否拥有该操作的权限也在数据库中有记录,结构如下:


但是如果直接使用上面的设计,会导致数据库中的_SysUserFuncOperate这张表数据量非常大,所以我们需要进一步设计提高效率,请看方案3

3.       多系统基于角色和操作的权限设计

如上图所示,我们通过采用角色分配操作的方式,这样子就可以减少操作权限表(_SysRoleFuncOperate) 中的记录,并且使设计更灵活一点。

但是这种方案在用户需求的考验之下也可能显得不够灵活够用,例如当用户要求临时给某位普通员工某操作权限时,我们就需要新增加一种新的用户角色,但是这种用户角色是不必要的,因为它只是一种临时的角色,如果添加一种角色还需要在收回此普通员工权限时删除此角色,我们需要设计一种更合适的结构来满足用户对权限设置的要求。

4.       2,3组合的权限设计,其结构如下:


我们可以看到在上图中添加了_SysUserFunc和_SysUserFuncOperate表,使用此表来添加特殊用户的权限。这样在应用程序中我们就需要通过_SysUserFuncOperate和_SysRoleFuncOperate两张表中的记录判断权限。

当然,有可能用户还会给出这样的需求:对于某一种Operate所操作的对象某一些记录会有权限,而对于其他的记录没有权限,比如说一个内容管理系统,对于某一些频道某个用户有修改的权限,而对于另外一些频道没有修改的权限,这时候我们需要设计更复杂的权限机制,对于此种情况,此处不作讨论,将会在以后把这种情况分为业务权限一块分析处理。

 补充:

对于上面介绍,有一些基础数据未列出,下图显示全部表的关系。其中有_SysFuncOperate,_System,_SysFunctions.

_SysFuncOperate:模块操作权限表,记录此模块所有的操作权限。

_Systems:全部系统

_SysFunctions:全部系统模块

备注:由于_SysFunctions加入的CultureInfo,多语言版本显示问题,所以在图上不能直接标示_SysUserFunc与_SysFunctions和_SysRoleFunc与_SysFunctions的关系。其原本SysID,FuncID是_SysUserFunc及_SysRoleFunc外键。

参考资料:

http://www.cnblogs.com/yukaizhao/archive/2007/04/15/user_role_action_permission.html

对于多系统的使用,可参考推荐一个简单权限管理系统的页面。由于没有美工,不太好看。

作者:DragonXiong

出处:http://s021368.cnblogs.com
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.。

转载于:https://www.cnblogs.com/s021368/archive/2009/07/15/1524458.html

多系统权限设计(一)相关推荐

  1. DH ERP系统权限设计

    一.系统权限定义 1.功能权限 定义:功能权限指的是用户登陆系统后,所持有的功能权限因子下的权限,而展示对应系统中各个菜单页面.操作功能等.功能权限设置分: [角色授权] [用户授权] 2.数据权限 ...

  2. 系统权限设计 - 基本概念和思路

    点击上方"xy的技术圈",选择"设为星标" 认真写文章,用心做分享. 微信公众号:xy的技术圈 个人网站:yasinshaw.com 正文 权限系统的设计几乎是 ...

  3. 基于RBAC 的SAAS系统权限设计

    为什么系统需要权限控制? 生活中有没有权限限制? 灾难片电影<2012>中富人和权贵有权登上诺亚方舟,穷苦老百姓只有等着灾难的来临: 屌丝身边为什么没有那些长得漂亮.身材好的姑娘存在? 因 ...

  4. 系统权限设计说明文档

    权限设计方案-技术实现说明文档 1. 新老系统权限区别 权限实现方式老系统使用shiro拦截器实现,新系统改变spring Interceptor,系统更为轻量,更为灵活. 菜单配置,老系统使用数据库 ...

  5. 系统权限设计实现_精确菜单和按钮

    每个系统都离不开权限控制,这里来说说页面上控制到按钮的思路,仅提供思路: 使用 角色 + 资源(菜单和菜单对应页面上的按钮)+ 授权的方式. 1  定义角色与用户: 假定这里我们只控制到角色这一层次, ...

  6. 基于系统数据过滤权限设计之----lft, rgt的无限分类算法

    系统权限设计中的一般常见会有: 用户表 角色表 用户与角色关联表 资源表 角色与资源关联表. 当然这里介绍是笼统的,有些系统中会有用户组表或者角色组表,甚至为了把菜单资源和按钮资源分开,也创建单独的表 ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

  8. 电商后台设计:权限设计

    文章结合具体业务场景对电商后台设计中的系统权限设计的业务逻辑展开了梳理说明,并对相关问题展开了分析,希望通过此文能够加深你对电商后台设计的认识. 在说权限设计前我们先来看个现实中的实例,大家在电影里面 ...

  9. 系统权限管理设计 (转:http://blog.csdn.net/chexlong/article/details/37697555)

    权限设计(转:http://blog.csdn.net/chexlong/article/details/37697555)      1. 前言:      权限管理往往是一个极其复杂的问题,但也可 ...

最新文章

  1. measure_profile_sheet_of_light算子说明
  2. Python 8 协程,异步IO,Paramiko
  3. 纹理特征:灰度共生矩阵
  4. 京东B2B业务架构演变阅读心得
  5. java基础代码实例_基础篇:详解JAVA对象实例化过程
  6. 《深度学习》图像超分初识
  7. 使用Navicat Premium 同步 测试数据库 与 正式数据库 数据
  8. CAP 原理这样理解最简单
  9. eclipse环境NDK问题汇总
  10. 神通数据库连接Oracle的Dblink
  11. xp系统打印机服务器win7连接不了,Win7无法共享xp打印机的解决方法
  12. ue4是什么意思_u3d和ue4的区别是什么
  13. 使用Bookinfo应用测试Kuma服务网格
  14. 2017.06.27—今日总结,指纹识别图像增强提取频率、mask、gabor滤波器
  15. MySQL提示Can‘t connect to MySQL server on localhost (10061)解决方法
  16. 压缩照片怎么压缩?分享一个好用的方法
  17. 学习java随堂练习-20220621
  18. MySQL —— 14、触发器
  19. 自考本科计算机科学与技术有哪些科目,自考本科有计算机科学与技术专业吗?...
  20. Socket 网络协议 等

热门文章

  1. Elastic Search 上市了,Slack上市了,我也要写个软件,走上人生巅峰
  2. Java 5~11各个版本新特性史上最全总结
  3. JVM内存占用情况深入分析,分分钟解开你的疑惑
  4. MySQL 优化原理(三)
  5. 中小型互联网公司微服务实践-经验和教训
  6. Android --- 快速将字符串定义到strings.xml文件的方法
  7. php面向对象封装mysql_php mysqli面向对象封装mysql数据库常用操作
  8. python flask框架发布问答平台注册页面_Python|Flask框架实现QQ账号登录
  9. 弱电工程计算机网络系统基础知识
  10. 数据中心停机事故的教训:关注基础设施