基于数据库的权限设计

  • 基于数据库的权限设计
    • 表设计

基于数据库的权限设计

目前大部分的系统都需要权限控制,这也是系统的标配,目前市面上已经有很多成熟的权限框架,比如:Shiro、Spring Security等。这些认证权限框架还是离不开数据库的支持。

表设计

说到权限,必定和用户挂钩,因为用户才是操作系统的核心,所以必须设计用户表。
我们可以给用户分配权限。
此时问题就来了,使用系统的用户有很多,有可能多个用户拥有相同的权限,需要频繁给用户分配权限,相对比较麻烦。如何解决呢?
一般来说拥有相同权限的用户都属于同一类人群,可以给这类人群赋予同一个标识,这个标识就是角色。只需要给角色划分好权限,再给用户划分角色,这样管理就相对轻松了。

表结构如下:

  1. 用户表:用户账号和密码
  2. 角色表:划分系统使用角色
  3. 权限表:罗列系统所有资源,下图中仅罗列了菜单,对于菜单下的按钮也可也设计进去
  4. 用户角色表:关联表,把用户和角色挂钩
  5. 角色权限表:关联表,把角色和权限挂钩

操作流程

  1. 用户登录
  2. 用户登录之后,根据用户ID,匹配【用户角色表】,查询其对应的角色。
  3. 根据查询到的角色ID,匹配【角色权限表】,查询其对应的权限(菜单)。
  4. 最后在页面展示菜单的信息。

不同的角色查询到的菜单不同,也就达到了权限的控制。

【技术】基于数据库的权限设计相关推荐

  1. 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计

    一.权限系统 这一天将讲述一个基本的基于数据库的权限管理系统的设计,在这一天的课程的最后将讲述"左右值无限分类实现算法"如何来优化"系统菜单"的结构而告终.今天 ...

  2. J2EE开发之(六)之漫谈基于数据库的权限系统的设计

    一,权限系统 这一天将讲述一个基本的基于数据库的权限管理系统的设计,在这一天的课程的最后将讲述"左右值无限分类实现算法"如何来优化"系统菜单"的结构而告终.今天 ...

  3. 基于RBAC的权限设计

    来源:http://www.phpchina.com/html/73/5173_itemid_10049.html 基于RBAC 的权限设计模型: 1        RBAC 介绍   RBAC 模型 ...

  4. 基于角色的权限设计(一)

    在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案. 在权限系统中,功能(权限)是最小的单位,比如起草新闻.编辑新闻.审核新闻.删除新闻等,而角色是一类功能的集合 ...

  5. 基于RMI技术的数据库操作中间件设计 综合实践报告

    前言 1.1  实践目的和要求 为了将理论用于实践,巩固所学知识,提高自己发现问题并用所学知识分析问题和解决问题的能力,锻炼自己的工作能力,适应社会能力,自我管理能力,了解目前软件的应用情况,需求情况 ...

  6. 一文带你学习DWS数据库用户权限设计与管理

    前言 本文将介绍DWS基于RBAC(Role-Based Access Control,基于角色的访问控制)的数据库用户权限管理.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成 ...

  7. 基于shiro的权限设计

    shiro介绍 Apache shiro是一个权限控制框架,它将安全认证抽取出来,实现用户身份认证,权限授权,加密,会话管理等功能,是一个通用的安全认证框架,而且还可以用于分布式集群.功能如下 1.验 ...

  8. 基于RBAC的权限设计模型

    来源:http://blog.csdn.net/huanghanzzz2006/archive/2006/12/04/1429666.aspx   1        RBAC 介绍 RBAC 模型作为 ...

  9. OAuth2在分布式微服务架构下基于角色的权限设计(RBAC)

    在前两节的基础上,对权限控制作进一步的分析与设计. RBAC(Role-Base Access Control,基于角色的访问控制) 本篇内容基于个人理解,不当之处,欢迎批评指正. 前两篇内容: [图 ...

最新文章

  1. JS删除数组指定下标并添加到数组开头
  2. 一个比较简单、非常简单的计算器
  3. 【数据分析】多场景下的算法构建
  4. 坚持使用GNU/Linux
  5. Android知识点
  6. VTK:图片之InteractWithImage
  7. 自定义镜像-Dockerfile
  8. TreeSet集合中的自定义比较器
  9. java垃圾回收机制优化_JVM性能优化--Java的垃圾回收机制
  10. Ubuntu18使用docker快速安装oracle 11g
  11. zabbix邮件通知,短信通知配置详解
  12. (并查集)The Suspects
  13. hitool备份3798固件方法_创维E900s海思3798芯片当贝桌面不拆机通刷固件及刷机教程201910版...
  14. 儿童时间管理表,让孩子学会善待时间
  15. AutoLisp从入门到放弃(十三)
  16. 【无极低码】手写一个低代码平台之二次开发Java
  17. IIS6/IIS7以上、Nginx、Apache拦截屏蔽垃圾蜘蛛UA爬行降低负载方法IIS7.5如何限制某UserAgent 禁止访问
  18. 你开始变的虚伪 是自尊心一直作祟
  19. 4.STM32F407之HAL库——按键
  20. 【解决方案】智慧国土管理靠什么?EasyCVR综合性视频监控管理系统成支撑

热门文章

  1. 黑莓9000刷机WIN7+DM6.0+ROM5.0+BBSAKv成功及安装使用经验
  2. Android 混淆机制详解
  3. 记录一次Extmail 邮件服务器崩盘事件
  4. TCP连接握手为什么3次?断开为什么是4次?TCP的优化-SCTP协议
  5. 为什么pytorch要用mean=[0.485, 0.456, 0.406] 、std=[0.229, 0.224, 0.225]
  6. Linux基础篇之网络配置
  7. python爬虫项目毕业设计_基于python爬虫的电影推荐网站的设计与实现毕业论文+初稿+项目源码+安装说明+使用说明...
  8. 科技爱好者周刊:第 79 期
  9. 解决共享文件复制出错“指定的网络名不再可用”
  10. 华为nova7se能云闪付吗_Huawei Pay开通与使用银联云闪付教程