在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