粗粒度與細粒度許可權控制

2021-09-25 02:56:41 字數 1078 閱讀 5948

粗粒度許可權管理,對資源型別的許可權管理。資源型別比如:選單、url連線、使用者新增頁面、使用者資訊、類方法、頁面中按鈕。。

粗粒度許可權管理比如:超級管理員可以訪問戶新增頁面、使用者資訊等全部頁面。

部門管理員可以訪問使用者資訊頁面包括 頁面中所有按鈕。

細粒度許可權管理,對資源例項的許可權管理。資源例項就資源型別的具體化,比如:使用者id為001的修改連線,1110班的使用者資訊、行政部的員工。

細粒度許可權管理就是資料級別的許可權管理。

細粒度許可權管理比如:部門經理只可以訪問本部門的員工資訊,使用者只可以看到自己的選單,大區經理只能檢視本轄區的銷售訂單。。

粗粒度和細粒度例子:

系統有乙個使用者列表查詢頁面,對使用者列表查詢分許可權,如果粗顆粒管理,張三和李四都有使用者列表查詢的許可權,張三和李四都可以訪問使用者列表查詢。

進一步進行細顆粒管理,張三(行政部)和李四(開發部)只可以查詢自己本部門的使用者資訊。張三只能檢視行政部 的使用者資訊,李四只能檢視開發部門的使用者資訊。細粒度許可權管理就是資料級別的許可權管理。

如何實現粗粒度許可權管理?

粗粒度許可權管理比較容易將許可權管理的**抽取出來在系統架構級別統一處理。比如:通過springmvc的***實現授權。

如何實現細粒度許可權管理?

對細粒度許可權管理在資料級別是沒有共性可言,針對細粒度許可權管理就是系統業務邏輯的一部分,如果在業務層去處理相對比較簡單,如果將細粒度許可權管理統一在系統架構級別去抽取,比較困難,即使抽取的功能可能也存在擴充套件不強。

建議細粒度許可權管理在業務層去控制。

比如:部門經理只查詢本部門員工資訊,在service介面提供乙個部門id的引數,controller中根據當前使用者的資訊得到該 使用者屬於哪個部門,呼叫service時將部門id傳入service,實現該使用者只查詢本部門的員工。

基於url攔截的方式實現在實際開發中比較常用的一種方式。

對於web系統,通過filter過慮器實現url攔截,也可以使用springmvc的***實現基於url的攔截。

對於粗粒度許可權管理,建議使用優秀許可權管理框架來實現,節省開發成功,提高開發效率。

shiro就是乙個優秀許可權管理框架。

細粒度許可權管理

表1 許可權對映表 表名 tbl res map 許可權對映 類別 表 欄位名 字段別名 資料型別 主鍵 允許空 顯示 預設值 說明 pid 許可權編碼 varchar 50 y n n service view 資源 varchar 50 y n n explain 說明 varchar 50 y...

粗細粒度許可權 許可權

粗粒度許可權管理,對資源型別的許可權管理。資源型別比如 選單 url連線 使用者新增頁面 使用者資訊 類方法 頁面中按鈕。粗粒度許可權管理比如 超級管理員可以訪問戶新增頁面 使用者資訊等全部頁面。部門管理員可以訪問使用者資訊頁面包括 頁面中所有按鈕。細粒度許可權管理,對資源例項的許可權管理。資源例項...

細粒度審計

細粒度審計 fga 通過 oracle9i 引入 可以理解為 基於策略的審計 與標準的審計功能相反,fga 可用於指定生成審計記錄必需的條件 fga 策略通過使用 dbms fga 程式包以程式設計方式繫結到物件 表 檢視 類似於用於通過 vpd dbms rls 進行訪問控制的程式包,它允許您建立...