简单的RBAC用户角色权限控制
来源:互联网 发布:php 查找字符串的位置 编辑:程序博客网 时间:2024/05/16 06:10
Java web项目中,无论项目是大是小,或多或少都会涉及到用户访问权限的控制,权限管理总体的设计思路就是,不该看的不看,不该做的不做!据我目前的了解,我所知道的几种实现访问权限控制的方式有:
JQuery的zTree设计权限树;
权限框架shiro;
基于角色的访问控制RBAC;
这是我所知道的几种权限管理,如果有误或是还有其他的方法,望指正!
而今天我要说的就是基于角色的访问控制RBAC的权限管理,基于角色的访问控制(Role-Based Access Control),在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。最后的结果就是不同的用户登录系统会看到不同的功能,也就是菜单。
首先是数据库的设计,需要用户表(user),角色表(role),权限表(permission),还需要两张中间表,用户-角色表(user_role),角色-权限表(role_permission),表结构如下:
用户表(user)
用户-角色表(user_role)
角色表(role)
权限表(permission)
角色-权限表(role_permission)
这是基础5张表的表结构设计,写一个SQL语句测试一下,代码如下:
select u.id,u.true_name,r.role_name,p.permission_name,m.menu_namefrom user u INNER JOIN user_role ur on u.id = ur.user_idINNER JOIN role r on ur.role_id = r.idINNER JOIN role_permission rp on r.id = rp.role_idINNER JOIN permission p on rp.permission = p.idINNER JOIN permission_menu pm on p.id = pm.permission_idINNER JOIN menu m on pm.menu_id = m.idWHERE m.parent_id = 1
查询结果:
一般来说,简单的权限管理使用这5张表就可以实现,权限即是菜单。但是在这个例子中我多连接了一个菜单表,为了方便菜单的显示,方便观察。
2 0
- 简单的RBAC用户角色权限控制
- 基于角色的权限控制 - RBAC
- RBAC基于角色的权限控制
- 系统权限控制设计001---RBAC用户角色权限设计方案
- Yii中使用RBAC完全指南 (用户角色权限控制)
- Yii中使用RBAC完全指南 (用户角色权限控制)
- Yii中使用RBAC完全指南 (用户角色权限控制)
- 用户角色权限设计(rbac)
- RBAC用户角色权限设计方案
- RBAC用户角色权限设计方案
- RBAC用户角色权限设计方案
- RBAC用户角色权限设计方案
- RBAC用户角色权限设计方案
- Thinkphp的RBAC,基于角色的权限控制
- ThinkPHP的RBAC(基于角色权限控制)详解
- RBAC基于角色的权限控制个人理解
- ThinkPHP的RBAC(基于角色权限控制)详解
- ThinkPHP的RBAC(基于角色权限控制)详解
- 行优先和列优先的算法
- python 线性表的链式存储
- atoi 字串转换为数字
- 用Python模拟键盘输入
- 微信小程序瀑布流的实现
- 简单的RBAC用户角色权限控制
- 用深度学习方法做topic modeling
- 自定义协议封装包头、包体
- Oracle导入dmp文件,Oracle创建数据库
- geth的使用入门
- Jenkins:slave启动方式
- 私货
- Git命令
- [IOS APP]伪装者-GPS位置自定义,修改以及分享