简单权限系统设计(用户,角色,权限)

一,简单权限系统设计(用户,角色,权限)web

表设计sql

用户表:t_user    角色表:t_role    权限表:t_permission设计

关联表code

用户角色关联表:t_user_role    角色权限关联表:t_role_permisson资源

 

介绍:it

根据用户查询t_user_role的到用户的角色(根据须要,能够是一个和多个角色),在根据查询出来的角色到t_role_permission中获取对应角色的权限。io

如图:整个权限设计class

用户表数据sso

角色表数据权限

用户角色关联表数据

权限表数据

角色权限关联表数据

 

全部操做以下:

SELECT * FROM t_user WHERE `username`='admin' AND `password`='admin';

SELECT * FROM t_user_role WHERE userid = 1

SELECT * FROM t_role WHERE id = 1
SELECT * FROM t_role_permission WHERE roleid = 1

SELECT * FROM t_permission WHERE id = 1
SELECT * FROM t_permission WHERE id = 2
SELECT * FROM t_permission WHERE id = 3
SELECT * FROM t_permission WHERE id = 4


------------------------------------------------------
SELECT `id` FROM t_user WHERE `username`='赵六' AND `password`='1111';
#获得用户id:5 ,表示登录成功

SELECT `roleid` FROM t_user_role WHERE `userid`=5;
#获得角色id:3 ,表示获取到角色

SELECT `rolename` FROM t_role WHERE `id`=3;
#根据角色id 3,查询获得角色名称为 “学生”
SELECT `permissionid` FROM t_role_permission WHERE `roleid`=3;
#根据角色id,查询获得权限id;只有一个(1)

SELECT * FROM t_permission WHERE `id`=1;
#根据权限id 1, 查询权限表,权限名称 “查看”  权限标签 “view”

---------------------------------------------------------
SELECT `id` FROM t_user WHERE `username`='张三' AND `password`='123456';
#获得用户id:2 ,表示登录成功

SELECT `roleid` FROM t_user_role WHERE `userid`=2;
#获得角色id:2 ,表示获取到角色

SELECT `rolename` FROM t_role WHERE `id`=2;
#根据角色id,查询获得角色名称为 “教师”
SELECT `permissionid` FROM t_role_permission WHERE `roleid`=2;
#根据角色id,查询获得权限id;(1,4)

SELECT * FROM t_permission WHERE `id`=1;
#根据权限id 1, 查询权限表,权限名称 “查看”  权限标签 “view”
SELECT * FROM t_permission WHERE `id`=4;
#根据权限id 4, 查询权限表,权限名称 “新增”  权限标签 “add”

-------------------------------------------------------------------

这是一个简单的常见的权限管理。

 

二:权限系统设计(用户,角色,权限,资源)

这个比上面的设计略微复杂点,更适合相对复杂的系统和权限功能要求更高的系统。

首先,咱们添加资源表,

用户和角色 以及 他们的关联表,都和上面的同样,咱们新增的资源和角色联系在一块儿。

同时修改 角色权限关联表为 , 角色资源权限关联表。

如图:

介绍:

根据用户查询t_user_role的到用户的角色(根据须要,能够是一个和多个角色),在根据查询出来的角色到t_role_resource_permission中获取对应角色的资源和对应权限。

这个权限系统能够用在web常见的系统中,

resource资源能够为web系统的一些模块,如不一样的路径。

permission为权限,能够使用shiro这块, 这样permissionLable为system:edit 或 user:add,user:del等这样的shiro权限标签

相关文章
相关标签/搜索