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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

常见模块设计--权限管理(一)

發布時間:2024/3/12 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常见模块设计--权限管理(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.基于 RBAC(Role-based Access Control)權限訪問控制。也就是說一個用戶可以有多個角色,一個角色可以有多個權限,通過將角色和權限分離開來提高設計的可擴展性,通常一個用戶有多個角色,一個角色也會屬于多個用戶(多對多),一個角色有多個權限,一個權限也會屬于多個角色(多對多)。

2.最簡單版本
假設:我們拿到一個用戶對象,
可以通過:用戶id –>角色id–>角色名稱(什么角色)–>權限id –> 權限標識 –>獲取權限。最終獲取權限獲取角色信息。

角色:可以簡單理解為許多權限的集合。比如二級管理員,三級管理員。

3.用戶組模式
如果用戶數量比較龐大,可以加入用戶組模式。需要給用戶分組,每個用戶組內有多個用戶,可以給用戶授權外,也可以給用戶組授權。最終用戶擁有的所有權限 = 用戶個人擁有的權限+該用戶所在用戶組擁有的權限。(這個設計類似 svn 中的用戶權限,比如,將一個svn用戶加入到 group中,然后設置group的權限,以后加入更多的用戶,就不用再一一設置用戶的權限了。)

4.權限分類
大部分是針對功能模塊,比如對信息記錄的增刪改(信息狀態修改,文件的刪除修改等),菜單的訪問,輸入框,按鈕的可見性,是否可以新增下級管理員等。有些權限設計,會把功能操作作為一類,而把文件、菜單、頁面元素等作為另一類,這樣構成“用戶-角色-權限-資源”的授權模型。而在做數據表建模時,可把功能操作和資源統一管理,也就是都直接與權限表進行關聯,這樣可能更具便捷性和易擴展性。

5.完整版
請留意權限表中有一列“權限類型”,我們根據它的取值來區分是哪一類權限,如“MENU”表示菜單的訪問權限、“OPERATION”表示功能模塊的操作權限、“FILE”表示文件的修改權限、“ELEMENT”表示頁面元素的可見性控制等。

優點:(1)不需要區分哪些是權限操作,哪些是資源,(實際上,有時候也不好區分,如菜單,把它理解為資源呢還是功能模塊權限呢?)。
(2)方便擴展,當系統要對新的東西進行權限控制時,我只需要建立一個新的關聯表“權限XX關聯表”,并確定這類權限的權限類型字符串。

這里要注意的是,權限表與權限菜單關聯表、權限菜單關聯表與菜單表都是一對一的關系。(文件、頁面權限點、功能操作等同理)。也就是每添加一個菜單,就得同時往這三個表中各插入一條記錄。這樣,可以不需要權限菜單關聯表,讓權限表與菜單表直接關聯,此時,須在權限表中新增一列用來保存菜單的ID,權限表通過“權限類型”和這個ID來區分是種類型下的哪條記錄。

總結

以上是生活随笔為你收集整理的常见模块设计--权限管理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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