经典权限系统设计(五张表)
经典权限系统设计(五张表)
大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。
各表的大体表结构如下:
1、用户表(UserInfo):Id、UserName、UserPwd
2、角色表(RoleInfo):Id、RoleName
3、菜单表(MenuInfo):Id、MenuName
4、用户角色表(UserRole):Id、UserId、RoleId
5、角色菜单表(RoleMenu):Id、RoleId、MenuId
最关键的地方是,某个用户登录时,如何查找该用户的菜单权限?其实一条语句即可搞定:
假如用户的用户名为zhangsan,则他的菜单权限查询如下:
Select m.Id,m.MenuName from MenuInfo m ,UserInfo u UserRole ur, RoleMenu rm Where m.Id = rm.MenuId and ur.RoleId = rm.RoleId and ur.UserId = u.Id and u.UserName = 'zhangsan'
权限管理系统经典的五张表
DESC t_userDESC t_roleDESC t_menuDESC t_userroleDROP TABLE IF EXISTS t_user;DROP TABLE IF EXISTS t_role;DROP TABLE IF EXISTS t_menu;DROP TABLE IF EXISTS t_userrole;CREATE TABLE t_user(usr_id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',usr_account VARCHAR(32) NOT NULL UNIQUE COMMENT '账号',usr_password CHAR(32) NOT NULL COMMENT '密码')COMMENT '用户表';CREATE TABLE t_role(ro_id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',ro_name VARCHAR(32) NOT NULL UNIQUE COMMENT '角色名')COMMENT '角色表';CREATE TABLE t_menu(mu_id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',mu_name VARCHAR(32) NOT NULL UNIQUE COMMENT '菜名')COMMENT '菜单表';CREATE TABLE t_userrole(ur_usr_id INT COMMENT '用户ID',ur_ro_id INT COMMENT '角色ID')COMMENT '用户角色表';CREATE TABLE t_rolemenu(rm_ro_id INT COMMENT '角色ID',rm_mu_id INT COMMENT '菜单ID',PRIMARY KEY(rm_ro_id,rm_mu_id),FOREIGN KEY(rm_ro_id) REFERENCES t_role(ro_id),FOREIGN KEY(rm_mu_id) REFERENCES t_menu(mu_id))COMMENT '角色菜单表';INSERT INTO t_user(usr_account,usr_password) VALUES('chenxueli','111'); -- SYSINSERT INTO t_user(usr_account,usr_password) VALUES('chensheng','222'); -- SYSTEMINSERT INTO t_user(usr_account,usr_password) VALUES('zsf','333'); -- ADMININSERT INTO t_user(usr_account,usr_password) VALUES('zs','444'); -- USERINSERT INTO t_role(ro_name) VALUES('SYS');INSERT INTO t_role(ro_name) VALUES('SYSTEM');INSERT INTO t_role(ro_name) VALUES('ADMIN');INSERT INTO t_role(ro_name) VALUES('USER');INSERT INTO t_menu(mu_name) VALUES('拉黑用户');-- SYSINSERT INTO t_menu(mu_name) VALUES('运费险');-- SYS SYSTEMINSERT INTO t_menu(mu_name) VALUES('上架');-- SYS SYSTEM ADMININSERT INTO t_menu(mu_name) VALUES('下架');-- SYS SYSTEM ADMININSERT INTO t_menu(mu_name) VALUES('下单');-- USERINSERT INTO t_menu(mu_name) VALUES('付款');-- USERINSERT INTO t_userrole VALUES(1,1),(1,2);INSERT INTO t_userrole VALUES(2,2);INSERT INTO t_userrole VALUES(3,3);INSERT INTO t_userrole VALUES(4,4);INSERT INTO t_rolemenu VALUES(1,1),(1,2);INSERT INTO t_rolemenu VALUES(2,2),(2,3)(2,4);INSERT INTO t_rolemenu VALUES(3,3),(3,4);INSERT INTO t_rolemenu VALUES(4,5),(4,6);SELECT * FROM t_rolemenu ORDER BY ro_id;
经典权限系统设计(五张表)相关推荐
- RBAC经典角色权限系统设计五张表及拓展应用
大家都知道,权限系统是每个系统里面必备的最基本的系统,然而权限系统设计有时挺麻烦的,现在整理了下,给正在开发此模块的朋友提供一个思路! 设计基础:用户.角色.权限三大核心表,加上用户角色.角色权限两个 ...
- ASP.NET-权限管理五张表
ASP.NET 权限管理五张表 权限管理的表(5张表) 每个表里面必有的一些信息 序号 名称 字段 类型 主键 默认值 是否为空 备注 1 用户ID ID INT 是 ...
- rbac权限管理5张表_PHP之常用的RBAC权限管理详解
文章正文 在说权限管理前,应该先知道权限管理要有哪些功能: (1).用户只能访问,指定的控制器,指定的方法 (2).用户可以存在于多个用户组里 (3).用户组可以选择,指定的控制器,指定的方法 (4) ...
- 关于权限五张表的独到见解
设计基础: 用户.角色.权限三大核心表,加上用户角色.角色权限两个映射表(用于给用户表联系上权限表).这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限. 大致用到5张表:用户表(User ...
- 闻风丧胆系统角色权限五张表的设计
众所周知,权限系统是每个系统里面必备的最基本的系统,然而权限系统设计有时挺麻烦的,,现在整理了下,给正在开发此模块的朋友一个思路! 设计基础:用户.角色.权限三大核心表,加上用户角色.角色权限两个映射 ...
- rbac权限管理5张表_Laravel5实现RBAC权限管理
学习php,你就要学会一门框架教程,以后在工作上,基本都是用框架来驰骋你的PHP世界与领域,所以掌握一门框架是很重要的.据调查,现在用框架最多的就属ThinkPHP5 和Laravel5,Yii2.. ...
- rbac权限管理5张表_thinkphp框架下基于rbac的后台程序
最近接了一个小项目,给一家车辆运营管理的公司做一个小的后台管理程序(说是推进无纸化办公模式). 项目的情况是,根据不同部门,不同权限的员工给予不同的操作许可. 增加实时录入功能(搭配移动端使用). 像 ...
- 权限管理需要哪几张表
权限管理的五张表 一.五张表 1.用户表 user 2.角色表 role 3.权限表也叫资源表 permission 4.用户角色表 user_role_relation 5.角色权限表 role_p ...
- 工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件
以前写过一篇 表单权限与流程的权限控制:文章,没有具体的去实现,实践证明,同一张表单在多流程节点中流转,是工作流和电子表单必须要处理的问题. 工作流系统和电子表单相结合,达到同一张表单在流程的各个节 ...
最新文章
- linux获取近一小时日志,Linux分析日志获取最多访问的前10个IP
- 以下属于单例模式的优点的是_三、单例模式详解
- 小企业服务器设置位置,小企业服务器配置
- Ubuntu之Docker安装
- 熊猫多模式站群-开发日志
- android6.0权限管理工具EasyPermissionUtil
- 基于JAVA+SpringMVC+MYSQL的苗木销售系统
- spring 的延迟加载
- 锐捷网关交换机开启dhcp服务
- CAD 开发 渐变填充
- 数字电路逻辑设计_第三版_微课版_第五章思考题与练习题(附答案)
- 常用Quartz cron表达式例子
- 利用python进行数据分析第二版pdf百度云_利用Python进行数据分析(原书第2版) 中文翻译pdf高清版...
- 风险预测模型_利用好预后预测模型,2个月发篇4分+SCI不是梦
- BinaryOperator示例
- 一、Sails基础操作
- CSS3-3D动画制作旋转立方体
- 滑环在机电行业的应用
- keil5编译报错问题
- 批量输出dwg文件中的文本