企業中存在複雜的層級關係,不同層級的使用者擁有不同的的資料權限,並希望在查看業務資料時,不同層級的使用者僅可查看自己所擁有權限下的資料。
原始方案:使用一張權限寬表記錄使用者在不同維度上擁有的權限資訊,並在每個業務資料表上配置行權限。
注:本文範例使用品牌和區域維度來示範權限配置程式,使用者可根據實際場景調整維度。
範例權限寬表如下圖所示:
原始方案權限配置程式如下圖所示:
原始方案在真實場景中,會出現以下問題:
資料冗餘:使用者和維度權限間為多對多關係,權限寬表中有大量冗餘資訊。
權限寬表不易於動態權限配置:若新增一個維度,有 n 個不同的維度值,且當前權限寬表行數為 m ,則在權限寬表中最多需要插入 m * n 條記錄。
我們提出「四聯表」模型,將一張權限寬表拆分成一張使用者資訊表、多個維度表和維度權限表,獨立維護使用者在不同維度上的權限資訊。
相較於原始方案,「四聯表」模型主要做了以下調整:
1)拆分權限寬表,即放棄原有的權限寬表,重建立立「使用者資訊表」、「維度表」和「維度權限表」。
2)使用「使用者資訊表」、「維度表」和「維度權限表」,聯合「業務資料表」共同搭建「四聯表」模型。模型搭建程式如下圖所示:
在配置行權限前,使用者需提前準備以下類型的資料表:
1)使用者資訊表:包含帳號等欄位,且帳號欄位值唯一。
2)維度表:包含維度欄位,且維度欄位值唯一。
3)維度權限表:包含帳號、維度等欄位,儲存使用者在該維度上的權限資訊。
4)業務資料表:包含維度等欄位,儲存該維度下實際的業務資料。
1)建立以下兩類聯動,詳情請參考:設定聯動 。
聯動「使用者資訊表」與「維度權限表」,聯動關係為 1:N,記錄使用者擁有的不同維度的權限資訊。
聯動「維度表」與「業務資料表」,聯動關係為 1:N ,用於後續業務資料的查詢。
2)設定登入使用者所在欄位。
3)開啟「維度表」和「業務資料表」的「組件資料」使用權限,詳情請參考:公共資料組件資料權限 。
4)在「維度表上」配置行權限,獲取到登入使用者有權限的維度。透過聯動,在業務資料表中查詢出相應維度下的資料。最終查看到多個維度的交集資料。
企業的組織結構、職能部門、崗位等在經營中會經常發生變化,如何對變化部分進行資料權限配置呢?
「四聯表」模型易於擴展維度。新增維度時,使用者需要配置相關聯動,並在新增的維度表上配置一次行權限即可,系統會自動取多個維度的交集資料。
具體操作步驟如下:
1)準備一張「維度表」和一張「維度權限表」。
2)建立以下聯動:
聯動「使用者資訊表」與新增「維度權限表」,聯動關係為 1:N
聯動「維度表」與相關「業務資料表」,聯動關係為 1:N
3)在新增的維度表上配置一次行權限。如下圖所示:
新增業務資料表時,無需配置行權限,與對應的維度表進行聯動即可。
例如:新增「業務資料表 XXX」 ,此表與「區域維度表」有邏輯關係,則將其與「區域維度表」進行聯動。如下圖所示:
公司領導、區域主管、區域組員間存在樹狀關係,需要根據不同門店維度為使用者分配不同權限。
實現效果為公司領導可以看到全部資料,區域主管看到對應區域的資料,區域組員只能看到自己的資料。詳情請參考:多層級權限分配 。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙