資料許可權的設計與實現

2021-09-07 16:07:01 字數 1265 閱讀 8876

最近手上的web專案需要做許可權控制,努力了解下,做如下筆記

1.許可權分為選單許可權,操作許可權,資料許可權,

選單許可權即不同使用者能夠看到的選單按鈕不同,如系統管理員能看到系統管理,使用者管理等選單,而普通使用者是看不到這些管理選單的。

操作許可權即為不同使用者能夠對列表進行的操作許可權,即增刪改查等功能。

資料許可權即不同使用者能夠看到的列表資料不同,如開發部員工只能看到開發部的所有日誌列表,而總經理能夠看到所有部門的日誌列表。

2.各種許可權的設計,

基本資料表有使用者表user,角色表role,使用者-角色表user_role,許可權表function,角色許可權表role_function,因為使用者與角色,角色與許可權都是多對多關係,需要中間表,

以上就可以實現簡單的選單許可權控制。我們這裡增加了操作許可權表operation,資料許可權表datarule。

表operation和datarule中都有function id欄位,因為操作許可權和資料許可權都是依賴選單許可權而來的。

並且,角色許可權表中包含有id,roleid,functionid,operationid,dataruleid 5個字段。

什麼,角色許可權表沒看懂?其中乙個roleid對應多個functionid的多個操作許可權和資料許可權,

所以我們這裡將每條記錄裡operationid,dataruleid用逗號隔開,表示該角色對該許可權的各操作許可權和資料許可權。這下懂了吧。改天截圖。

甚至還有部門表org,使用者部門表user_org,角色部門表role_org,部門與使用者,部門與角色都是多對多關係,一般情況下,有部門與使用者關聯就夠了。

3.實現

這裡說說資料許可權的控制,我的專案資料許可權控制比較簡單,例如,各部門只能看他和他的下級部門的訂單列表(order),

配置資料許可權,如規則 org_code in #,系統後台必須查出該使用者部門及子部門的所有編號。

當使用者登入系統,且該使用者對於的角色已經配置了訂單選單的操作許可權和資料許可權,這時系統會有session記錄當前使用者的各種資訊,包括使用者名稱和所在部門編號,

根據使用者角色查詢出該使用者的所有許可權,我們可以把所有許可權儲存在session中,key-value形式,以選單url作為key,將對於的資料許可權sql作為value,

每當使用者進入相應的許可權選單列表,就會檢查session中是否存在資料許可權,存在則拼接sql過濾,如org_code in ('id1','id2');

ok!

資料級許可權設計與實現

概述 系統許可權可分為很多種。常用到的有操作許可權和資料許可權。操作許可權是有或者沒有某種操作的許可權,具體表現形式可為看到或者看不到某個選單或者功能按鈕。資料許可權指的是資料級別的許可權設計,立足點在於組織機構 崗位 部門 公司 和流程,對應的使用者沒有對某些資料的訪問許可權。本文件旨在設計資料許...

許可權設計(功能許可權與資料許可權)

許可權設計的最終目標就是定義每個使用者可以在系統中做哪些事情。當我們談到許可權的時候,一般可以分為 功能許可權 資料許可權和字段許可權 功能許可權 使用者具有哪些權利,比如特定單據的增 刪 改 查 審批 反審批等等 一般按照乙個人在組織內的工作內容來劃分 比如乙個單據往往有錄入人和審批人,錄入人具有...

通用資料許可權的思考與設計

1 資料許可權概述 1.1 什麼是資料許可權?資料許可權是指對系統使用者進行資料資源可見性的控制,通俗的解釋就是 符合某條件的使用者只能看到該條件下對應的資料資源。那麼最簡單的資料許可權大概就是 使用者只能看到自己的資料。而在正式的系統環境中,會有很多更為複雜的資料許可權需求場景,如 上述這些需求,...