RBAC(基于角色訪問控制)做數據權限
在RBAC模型下,系統只會驗證用戶A是否屬于角色RoleX,而不會判斷用戶A是否能訪問只屬于用戶B的數據DataB。這種問題我們稱之為“水平權限管理問題”。
數據權限
數據規則
比如我們系統的商機數據,需要從下面幾個維度來控制數據訪問權限。
銷售人員只能看自己的數據;
各大區的銷售經理只能看各區域的數據(安徽大區的銷售經理看安徽區域的商機數據),同理也適用于某BG分管領導只能看所在BG的商機數據;
財務人員只能看金額小于一萬的數據。
上面的這些維度就是數據規則。
這樣數據規則的幾個重點要素我們也明晰了,就是規則字段,規則表達式,規則值,上面三個場景對應的規則分別如下:
規則字段:創建人,規則表達式:= ,規則值:當前登錄人
規則字段:所屬大區,規則表達式:= ,規則值:安徽大區
規則字段:銷售金額,規則表達式:< ,規則值:10000

數據規則關聯權限(資源)
需要建立一個中間表即可

數據規則關聯角色(通過角色權限表)
讓不同的用戶擁有不同的數據規則
用戶是通過授予不同的角色來進行(資源)權限的管理,同理我們可以讓角色在授予權限的時候關聯上數據規則,這樣最終在系統上就體現為不同的用戶擁有不同的數據規則。
在角色權限表中加個數據規則自字段關聯,多個數據規則可以使用分隔符分割,如下圖

在關聯權限(資源)的時候,也可以只建一張關聯表,一個權限下有多個數據規則,省略數據規則表Data_Rulr,如下圖

參考資料:https://blog.csdn.net/m0_66404702/article/details/129582654?spm=1001.2014.3001.5502

浙公網安備 33010602011771號