日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用户角色及权限管理设计实例(基于RBAC模型)

發布時間:2024/3/12 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用户角色及权限管理设计实例(基于RBAC模型) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. 五張表模型
  • 2. 需求分析
  • 3. 數據庫設計
  • 4. 用戶分組
  • 5. 權限分類
  • 6. 參考

1. 五張表模型

RBAC(Role-Based Access Control),基于角色的訪問控制。做權限控制系統最常見的方式就是基于此模型的。它的基本思想就是:把資源能否訪問、操作能否執行設定為權限;設定不同角色配對權限,使某種權限在某種角色下為被允許狀態;最后再根據現實的組織方式為每用戶分配角色。由此構建 5 個表:

編號12345
名稱用戶表角色表權限表用戶角色關系表角色權限關系表
表名sys_userssys_rolessys_permsrel_user_rolerel_role_perm

其中:

  • 用戶和角色關系為多對多;
  • 角色與權限關系也是多對多。

2. 需求分析

以電視劇《潛伏》為背景舉例,我們要為保密局天津站建設一個管理系統,這里就要理清相關人員的各種關系。

天津站的組織關系(用戶、角色、用戶角色關系)如下

  • 一把手是站長吳敬中,下設兩個部門:機要室和行動隊。
  • 機要室主任為余則成。
  • 行動隊由隊長馬奎,還有兩個小嘍啰米志國、陳北伐組成。
  • 此外,余則成還是站長的學生(心腹下屬)。

保密局的日常工作有這幾項(權限):

  • 監聽電報。監聽截獲內外界各組織的電報;
  • 打電話。給南京打電話,給站長太太打電話、給穆連成打電話,以及給繡春樓打電話;
  • 派人跟穆晚秋談戀愛。從而榨取穆連成財寶;
  • 幫站長收別人送的一輛小汽車。斯蒂龐克牌的。

很顯然,上邊這些任務不是人人能做(角色權限關系):

  • 電話大家都能用;
  • 電訊室的電報不能讓小嘍啰隨便聽;
  • 跟穆晚秋談戀愛、代收小汽車都是幫站長斂財的私事,只能讓心腹余則成去做。

因此,以上關系可梳理為下圖所示


3. 數據庫設計

據上,理出用戶、角色、權限、用戶-角色、角色-權限的關系如下圖,這就是常見的權限5表。當然現實應用中的表不可能就這么兩三列,為了簡化繪圖這里只顯示了關鍵屬性,其他需要隨意添加哈。

對應的,構建數據庫表。

1. 用戶表(sys_users)

idname
1吳敬中
2余則成
3馬奎
4米志國
5陳北伐

2. 角色表(sys_roles)

idname
1站長
2機要室主任
3行動隊隊長
4小嘍啰
5站長心腹

3. 權限表(sys_perms)

idoperation
1監聽電報
2打電話
3和晚秋搞對象
4代收斯蒂龐克

4. 用戶-角色表(rel_user_role)

iduidrid*解釋
111吳敬中 -> 站長
222余則成 -> 機要室主任
325余則成 -> 站長心腹
433馬奎 -> 行動處長
544米志國 -> 小嘍啰
654陳北伐 -> 小嘍啰

5. 角色-權限表(rel_role_perm)

idridpid*解釋
111站長 -> 監聽電報
212站長 -> 打電話
321機要室主任 -> 監聽電報
422機要室主任 -> 打電話
531行動處長 -> 監聽電報
632行動處長 -> 打電話
742小嘍啰 -> 打電話
853站長心腹 -> 和晚秋談戀愛
954站長心腹 -> 代收斯蒂龐克

4. 用戶分組

用戶數量大且可分組授權時,添加 3 個表。

  • 用戶組
  • 用戶-用戶組
  • 用戶組-權限

米志國和陳北伐同屬 行動二科 的小嘍啰,他們具有相同權限,因此將上面數據庫設計的表結構更為

1. 用戶組表(sys_groups)

idname
1行動二科

2. 用戶-組表(rel_user_group)

iduidgid*解釋
141米志國 -> 行動二科
251陳北伐 -> 行動二科

3. 組-角色表(rel_group_role)

idgidrid*解釋
114行動二科 -> 小嘍啰

5. 權限分類

基于 Web 的應用主要通過 URL 來實現對不同資源的控制,如查看頁面、訪問數據等。所以權限指的其實就是對 URL 的控制。一個角色有多少個權限就取決于他有多少個 URL 的訪問權限。
當然也可以將一個網站資源的權限進行再次劃分,分為菜單、導航欄、頁面元素和功能操作(根據需要,不一定非拆分)。

6. 參考

[1]. 用戶,用戶組,角色,權限
https://blog.csdn.net/qq_30519491/article/details/80941201
[2]. RBAC(基于角色的訪問控制權限的基本模型)
https://blog.csdn.net/weixin_41174072/article/details/83387223
[3]. RBAC權限管理系統
https://www.cnblogs.com/zenan/p/10576489.html
[4]. rbac 表結構的。設計
https://www.cnblogs.com/chengege/p/10695713.html

.
.
.
.
.
.


桃花仙人種桃樹,又摘桃花換酒錢_

總結

以上是生活随笔為你收集整理的用户角色及权限管理设计实例(基于RBAC模型)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。