簡單權限系統設計(用戶,角色,權限)

一,簡單權限系統設計(用戶,角色,權限)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權限標籤

相關文章
相關標籤/搜索