打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
简单的RBAC用户角色权限控制

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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

查询结果:

一般来说,简单的权限管理使用这5张表就可以实现,权限即是菜单。但是在这个例子中我多连接了一个菜单表,为了方便菜单的显示,方便观察。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[原创] 基于RBAC的权限设计 - 欢迎大家讨论 - 我的IT生活 - BlogJava
浅谈RBAC/WEB
[七年技术总结系列][理论篇]-RBAC权限模型由浅入深
RBAC模型(1)
基于角色访问控制的UML表示
JR 精品文章 - 角色访问控制(RBAC)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服