多系統許可權設計(一)

2021-09-25 04:51:10 字數 1952 閱讀 5144

多系統許可權設計

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.訪問許可權不同 如公司領導登入後,可檢視員工薪水分布介面,而員工...