1. 程式人生 > >基於資源的許可權系統-資料庫設計

基於資源的許可權系統-資料庫設計

概述

本通用許可權管理系統是基於2棵樹來做許可權管理的,這2棵樹就是 資源樹 和 組織樹

組織+資源+動作 所組成的許可權資料就是整個系統的核心。 這裡之所以只用組織而不用人員,一方面可以減少許可權資料的量,一方面還可以簡化許可權資料。
每個人員的的許可權是可以計算出來的。 人員從屬於一個或者多個組織的,預設情況下所有人員都有一個根組織,許可權資料為了保持簡單,只儲存組織的許可權。

表結構設計

概略圖

img

真正在許可權系統中的資料只要 Permission,Rule,Action 3張表就夠了。
User,Group,Resource 的資料可以放在許可權中,也可以和既有的系統對接,既有的系統提供API,能夠讓許可權訪問到User,Group,Resource的資訊即可。

表設計

本系統希望最後以服務的形式提供許可權管理的功能,所以每張表沒有多餘的欄位,只有許可權管理必需的一些欄位。 關於 人員,組織,資源 的冗餘資訊應該在各自的系統中查詢和錄入。

許可權表(Permission)

field name field type comment
Id string 許可權ID
ActionId string 動作ID
GroupId string 組織ID
ResourceId string 資源ID

動作表(Action)

field name field type comment
Id string 動作ID
Name string 動作名稱
Description string 動作描述

規則表(暫略)

人員表(User)

field name field type comment
Id string 使用者ID
Name string 使用者名稱
Password string 密碼
Email string 郵件地址

組織表(Group)

field name field type comment
Id string 組織ID
ParentId string 父組織ID
Name string 組織名稱
Description string 組織描述

使用者-組織關聯表(UserGroupRel)

field name field type comment
Id string 使用者組織關係ID
UserId string 使用者ID
GroupId string 組織ID

資源表(Resource)

field name field type comment
Id string 資源ID
ParentId string 父資源ID
Name string 資源名稱
Description string 資源描述

許可權規則

許可權規則會以外掛的形式加入許可權驗證的過程中,其目的就是讓許可權管理系統更加靈活,更加的通用。
關於許可權規則的定義和解析,以後再單獨介紹。

沒有許可權規則,整個許可權管理系統也可以正常執行,使用。

總結

許可權功能幾乎是每個系統都需要的功能,也是每個系統中比較麻煩的一個模組,不僅測試麻煩,而且一般對其他的業務侵入比較多。
本許可權系統的資料結構很簡單,以許可權資料為核心,加上與之關聯的一些表,先將基本的許可權服務提供出來。