多系統許可權設計
1.多系統基於角色的許可權設計
這種方案是最常見也是比較簡單的方案,不過通常有這種設計已經夠了,這種方案對於每乙個操作不做控制,只是在程式中根據角色對是否具有操作的許可權進行控制;這裡我們就不做詳述
.此處採用角色關聯模組的方式。
2.多系統基於操作的許可權設計
這種模式下每乙個操作都在資料庫中有記錄,使用者是否擁有該操作的許可權也在資料庫中有記錄,結構如下:
但是如果直接使用上面的設計,會導致資料庫中的
_sysuserfuncoperate
這張表資料量非常大,所以我們需要進一步設計提高效率,請看方案3
3.多系統基於角色和操作的許可權設計
如上圖所示,我們通過採用角色分配操作的方式,這樣子就可以減少操作許可權表(
_sysrolefuncoperate
)中的記錄,並且使設計更靈活一點。
但是這種方案在使用者需求的考驗之下也可能顯得不夠靈活夠用,例如當使用者要求臨時給某位普通員工某操作許可權時,我們就需要新增加一種新的使用者角色,但是這種使用者角色是不必要的,因為它只是一種臨時的角色,如果新增一種角色還需要在收回此普通員工許可權時刪除此角色,我們需要設計一種更合適的結構來滿足使用者對許可權設定的要求。
4.2,3
組合的許可權設計,其結構如下:
我們可以看到在上圖中新增了
_sysuserfunc
和_sysuserfuncoperate
表,使用此表來新增特殊使用者的許可權。這樣在應用程式中我們就需要通過
_sysuserfuncoperate
和_sysrolefuncoperate
兩張表中的記錄判斷許可權。
當然,有可能使用者還會給出這樣的需求:對於某一種
operate
所操作的物件某一些記錄會有許可權,而對於其他的記錄沒有許可權,比如說乙個內容管理系統,對於某一些頻道某個使用者有修改的許可權,而對於另外一些頻道沒有修改的許可權,這時候我們需要設計更複雜的許可權機制,對於此種情況,此處不作討論,將會在以後把這種情況分為業務許可權一塊分析處理。
補充:
對於上面介紹,有一些基礎資料未列出,下圖顯示全部表的關係。其中有
_sysfuncoperate,_system,_sysfunctions.
_sysfuncoperate:
模組操作許可權表,記錄此模組所有的操作許可權。
_systems:
全部系統
_sysfunctions:
全部系統模組
備註:由於
_sysfunctions
加入的cultureinfo,
多語言版本顯示問題,所以在圖上不能直接標示
_sysuserfunc
與_sysfunctions
和_sysrolefunc
與_sysfunctions
的關係。其原本
sysid,funcid
是_sysuserfunc
及_sysrolefunc
外來鍵。
許可權系統設計
許可權系統 2 operation 許可權控制可以看作乙個filter模式的應用,這也符合aop思想的應用條件。在乙個簡化的圖象中,我們只需要將乙個判別函式 isallowed subject,operation,resource 插入到所有安全敏感的函式呼叫之前就可以了。雖然概念上很完美,具體實現...
系統設計 許可權模型設計
該許可權資料模型設計依據spring security框架,針對賬號 角色 許可權 資源 模組 選單 等物件做了簡單設計 指系統登陸賬號,系統使用者物件身份標識。只使用者的身份象徵標識,乙個登陸賬號,可同時擁有多個系統使用角色 身份 比如在網購 當中,使用者同時擁有a資源管理員角色 b資源管理員角色...
許可權設計 系統登入使用者許可權設計
需求分析 場景 假設需要為公司設計乙個人員管理系統,並為各級領導及全體員工分配系統登入賬號。有如下幾個要求 1.許可權等級不同 公司領導登入後可檢視所有員工資訊,部門領導登入後只可檢視本部門員工的資訊,員工登入後只可檢視自己的資訊 2.訪問許可權不同 如公司領導登入後,可檢視員工薪水分布介面,而員工...