1. 概述
1.1 問題描述
管理員可以通過設置列欄權限來實現不同使用者查看不同的資料,但若同時對部門、角色、使用者都設置了列欄權限,或者使用了關聯關係等,出現複雜的設置,可能會達不到預期結果。
1.2 解決思路
本文來說明列欄權限的一些特殊場景。
2. 設置數據表列權限
2.1 部門、角色、使用者同時設置列權限後取「或」關係
2.1.1 權限設置
例:使用者 alice 既是開發部部長,又是技術支持部長,同時屬於普通角色,則在這四者(開發部部長、技術支持部長、普通角色、使用者 alice )上設置資料表的權限。
1)為 alice 設置部門列權限,開發部部長設置「零售行業」>「品牌維度表」中的「品牌描述」字段屬於「ZIPPO(之寶)」,如下圖所示:
2)技術支持部長設置「零售行業」>「品牌維度表」中的「品牌描述」字段屬於「新百倫」。如下圖所示:
3)為 alice 設置角色列權限,普通角色設置「零售行業」>「品牌維度表」的「品牌描述」字段屬於「HANG TEN」。如下圖所示:
4)為 alice 設置使用者列權限,使用者 alice 設置「零售行業」>「品牌維度表」中的「品牌描述」字段屬於「十月媽咪」。如下圖所示:
2.1.2 效果查看
alice 賬號登錄數據決策系統,最終結果是四個列權限條件取「或」關係,如下圖所示:
注:若為用戶單獨設置過使用/管理/授權權限,在設置權限後會出現黃色的人像標誌。此時若需要恢復對部門/角色權限的繼承,需要點擊恢復繼承權限按鈕。彈出提示框「確定清除該用戶關於業務包權限的單獨權限設置,恢復對部門/角色權限的繼承」,點擊確定即可。如下圖所示:
2.2 部門、角色、使用者部分設置列權限後對配置的列權限取「或」
2.2.1 權限設置
例:使用者 alice 既是開發部部長,又是普通角色,則在這三者(開發部部長、普通角色、使用者 Alice )上設置資料表的列權限。
注:部分設置列權限。
1)為 alice 設置部門列權限,開發部部長設置「零售行業」>「品牌維度表」的「品牌描述」字段屬於「ZIPPO(之寶)」,如下圖所示:
2)為 alice 設置角色權限,普通角色設置「零售行業」>「品牌維度表」的「品牌描述」字段屬於「HANG TEN」。如下圖所示:
3)為 alice 設置使用者權限,使用者 alice 設置「品牌維度」使用權限,不設置列權限。如下圖所示:
注:抽取數據實時數據選擇在 2020-09-01後的版本中才有。
2.2.2 效果展示
最终结果是配置的列权限取「或」关系,未配置行权限的角色和用户不算在或关系中,如下图所示:
2.3 部門層級的列權限先取「且」,不同部門間列權限再取「或」
例:公司部門層級關係為測試組 - 產品線1、產品線2,開發組 - 產品線1、產品線2 , 如下圖所示:
示例数据:
2.3.1 權限設置
1)添加員工信息表如下圖所示:
2)使用者 alice 既是 產品線 1 的測試組成員,又是產品線 1 的開發組成員,對整個測試組分配業務包 2 權限,設置列權限為員工信息表.部門=測試組,如下圖所示:
3)對測試組下的產品線 1 組分配業務包 2 的權限,添加列權限為員工信息表.小組別=產品線 1 ,如下圖所示:
4)對整個開發組分配業務包 2 權限,添加列權限為員工信息表.部門=研發組,如下圖所示:
5)對開發組下的產品線 1 分配業務包 2 權限,添加列權限為員工信息表.小組別=產品線 1 ,如下圖所示:
2.3.2 效果查看
alice 登錄查看「員工信息表」,alice 可以看到產品線 1 測試組和產品線 1 開發組的資料,如下圖所示:
(先根據部門層級間權限取且,不同的部門間再取或)
2.4 有關聯關係的表設置列權限,主表可過濾子表(跨業務包生效)
例:現有三張表:「產品名稱維度表」、「合同事實表」、「合同回款事實表」,關聯關係如下圖所示:
注:「產品名稱維度表」是「合同事實表」的主表,「合同事實表」是「合同回款事實表」的主表。
2)將「產品名稱維度表」、「合同事實表」添加至業務包 1 ,將「合同回款事實表」添加至業務包 2 ,並為「產品名稱維度表」和「合同回款事實表」設置使用權限,如下圖所示:
3)管理員對業務包 A 設置「合同事實表」列權限,購買的產品等於1 ,如下圖所示:
2.4.2 效果查看
1)普通使用者 alice 登錄查看,「合同事實表」的主表「產品名稱維度表」可以看到所有的資料,不會收到列權限的影響,如下圖所示:
2)「合同事實表」以及作為「合同事實表」的子表「合同回款事實表」只能看到購買的產品等於 1 的數據,受到了主表的列權限影響,如下圖所示:
2.5 多重主表設置列權限取「且」關係
2.5.1 權限設置
例:現有三張表:「產品名稱維度表」、「合同事實表」、「客戶維度表」,關聯關係如下圖所示:
注:「產品名稱維度表」和「客戶維度表」都是「合同事實表」的主表。
1)對「產品名稱維度表」設置列權限產品 ID 大於等於 5 ,如下圖所示:
2)對「客戶維度表」設置列權限,省份屬於上海市,如下圖所示:
3)對「合同事實表」設置使用權限,不設置列權限,如下圖所示:
2.5.2 效果查看
alice 登錄查看「合同事實表」,「合同事實表」只能看到產品 ID 大於等於 5 並且客戶省份為上海市對應的客戶 ID 下的相關數據。如下圖所示:
3. 設置資料表欄權限
3.1 從業務包「使用權限」切換成「管理權限」時,欄權限需要重新配置
例如:在只開啟業務包使用權限的情況下對列權限、欄權限進行設置,此時再開啟該業務包的管理權限,之前設置的列權限依然是生效的,而列權限則需要重新配置。
3.2 部門、角色之間的列權限設置取或關係 欄權限用戶最大原則
3.2.1 權限設置
例:使用者 alice 既屬於技術支持 ,又屬於普通角色。
1)對技術支持部門設置業務包 1 中「合同事實表」的欄權限,選擇字段合同金額、合同付款類型、合同類型,如下圖所示:
2)對普通角色設置業務包 1 中「合同事實表」的欄權限,選擇字段合同類型、是否已經交貨、合同簽約時間,如下圖所示:
3)此時再對使用者維度設置欄權限,選擇「合同事實表」的「購買的產品」字段,如下圖所示:
3.2.2 效果查看
查看使用者 alice 的「合同事實表」的界面,只顯示「購買的產品」字段,則該使用者的欄權限完全取決於對該使用者的設置,對部門角色的設置不再影響該使用者,如下圖所示: