粗細粒度許可權 許可權

2021-08-03 18:22:48 字數 1065 閱讀 8782

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

java實現Oracle細粒度許可權系統

實現效果如下 控制選單和操作就不多說了 特點一 1.乙個使用者在同一時間只能在乙個點登陸,包括同一瀏覽器也不行,當然也不會出現非法退出或斷電而導致後者不能登陸的問題 2.系統管理員也可以強制結束某使用者的會話,使得使用者強制退出 3.資料控制 1 可以控制某許可權對錶或檢視列級訪問,例如表 demo...