權限體系是所有BI產品都會涉及的一個重要組成部分,目的是對不同的人訪問資源進行權限控制,避免因權限控制缺失或操作不當引發的風險,如隱私數據泄露等問題。有數BI權限體系設計的初衷,希望它既能滿足實際業務中的復雜場景,又能簡潔易用,今天我們將詳細介紹有數BI的權限體系!
角色模型
對于權限管理,最簡單的辦法就是給每個用戶配不同的權限,但這樣的設計在用戶較多時維護起來就顯得非常力不從心。于是很多人想到在用戶和權限之間增加一個角色,也就是迄今為止最為普及的權限設計模型,即RBAC(Role Based Access Control,基于角色的權限訪問控制)權限模型。
RBAC模型認為權限授權實際上是Who、What、How的問題。在RBAC模型中,Who、What、How構成了訪問權限三元組,也就是“Who(權限的擁用者或主體)對What(權限針對的對象或資源)進行How(具體的權限)的操作”。換句話講,在RBAC模型中,是通過控制“Who對What進行How的操作”來實現讓不同的用戶/用戶組對不同的資源擁有不同的操作/數據權限的目的。
我們的權限體系即是依據RBAC模型思想所設計的,相關概念包括權限,角色和用戶。角色與權限綁定,即項目中用戶的權限與其被賦予的角色相關。一個用戶可以擁有多個角色,一個角色也可以被添加給多個用戶,每個角色可以被賦予多個權限。以下圖所示的結構為例,用戶1只擁有角色1的權限,即對資源1進行操作1;而由于用戶3擁有3個角色全部的權限,因此該用戶可以對資源1和資源2分別進行操作1和操作2。
現在,有數BI的權限體系已經擁有了基礎的RBAC模型思想,但還遠遠不夠。通過市場分析,我們發現企業在使用權限體系的過程中,大多繞不開三大難題:
組織規模達到一定程度后,需要管理的資源數量龐大,同時對權限要求又很高時,需設置非常細粒度的權限,導致整個權限體系顯得十分零散和無序,產生大量的維護成本;
而為了保證數據安全,這樣的權限體系往往是由權限最高的少數管理員來配置組織內部全體成員的權限,給管理員帶來巨大的工作量;
同時,在設置針對個人的不同數據權限時,其復雜程度更是呈幾何增長,且當人員變更時,針對每個數據集需要重新配置行級權限,造成大量的權限重復配置操作。
那么為了解決這些難題,有數BI的權限體系是如何設計的呢?接下來,本文將圍繞這些難題,給出我們的解決方案!
資源權限
1.基于角色,統一管理
不同于市面上其他的BI產品,有數BI中資源權限的設置和賦予完全通過角色來實現,這樣的設計可以幫助用戶基于角色來實現權限的統一管理,極大降低企業設置權限體系的復雜程度。例如,企業內各人員的資源權限往往是根據企業組織架構來對應設置的,當組織人員變動時,在權限體系中只需將該用戶所擁有的角色變更為對應組織架構角色,就能一鍵實現資源權限的變更。
通過對資源權限和數據權限的組合設置,簡單勾選即可創建角色,并將對應成員添加到該角色下面,輕松搭建靈活、簡潔的權限體系!
2.分級授權,靈活應用
現實場景中,當企業發展到一定程度時,往往擁有多層組織架構,而在傳統的RBAC模型中,往往都只能由一個權限最高的用戶(一般為管理員)來創建所有角色,對所有用戶進行權限的授予,進行權限體系的維護工作,這樣導致管理員工作量過大。同時,企業里不同的業務線,或者不同的業務部門都有數據分析需求,如果無法將不同業務線或部門資源分隔開,將對資源的整理和權限配置帶來巨大挑戰。
基于上述情況,有數BI提供了“項目+二級管理員”的多項目結合分級授權體系。首先,企業可以為不同的業務部門建立不同的項目,通過“項目列表”在不同的項目前切換,項目管理員擁有該項目內所有資源的所有權限。其次,通過二級管理員的設置來實現二級授權,項目管理員可以將部分資源的授予權限賦予該二級管理員,由二級管理員來管理對應的資源。多租戶結合分級授權體系可以幫助用戶創建非常豐富立體的權限分配體系。
具體來看,有數BI將角色分成三類:系統角色、一級角色和二級角色。
系統角色包括:項目管理員、二級管理員、編輯者、閱覽者,系統角色無法編輯、修改和刪除。編輯者可以查看或編輯所有的資源;閱覽者僅可以查看所有資源。
一級角色和二級角色由項目管理員和二級管理員創建,一級角色可以擁有編輯權限,二級角色只能擁有閱覽權限。
數據權限
1.行列權限,精準定位
數據安全對于企業的重要性不言而喻。數據權限解決的便是用戶能看到多少數據量和什么數據的問題。現實場景中,企業往往有大量業務數據和權限需求,在設置數據權限時,如何實現數據權限的精準定位,是有數BI在設計數據權限時所考慮的重要方面。因此,有數BI提供行和列級別的數據權限控制粒度,通過對同一張表進行行權限和列權限的配置,就可以精準實現數據權限的高效配置。
假設這樣一個場景:小王的公司在“東北、華北、華東、華南”四個大區都有銷售人員,他希望不同大區的銷售訪問同一張報告時候,都只能看到自己所屬大區的數據,在有數BI中,用“數據行級權限”可以實現這樣的需求:我們可以創建4個“數據行級權限”,每個“數據行級權限”只能訪問一個大區的數據,然后給不同大區的銷售人員分配對應的“數據行級權限”。如東北大區的銷售人員只能看到“東北”地區的數據,我們可以建立一個“數據行級權限”,然后設置數據訪問權限,只允許該角色成員訪問“東北”地區的數據,然后將該“數據行級權限”賦予東北大區的銷售人員即可。
2.屬性對應,動態匹配
使用上述方法時,當我們存在多少個大區,我們就需要創建對應數量的“數據行級權限”。當組織人員規模達到一定程度后,管理復雜度往往呈幾何增長,這樣的設置方式必然需要大量的時間成本和人力成本來維護。同時,考慮到組織內不同人員所能擁有的數據權限往往與TA所在的部門、崗位或地區有一定的映射關系,那么,能否提供一種簡便的設置路徑,能夠直接對不同部門的用戶匹配不同的行級權限呢?
基于此,我們在數據權限的創建頁提供了固定值和屬性值的配置選項,當選擇屬性值時,就可以通過設置屬性值與對應字段的匹配,例如將“屬性值-地區”與字段“地區匹配”,就能讓不同地區的成員只能看到對應地區的數據,從而極大提高行級授權的管理效率。
1. 首先,企業域管理-人員信息-屬性列表-設置一個屬性值“地區”,在對應用戶后輸入東北或其他地區。
2. 創建一個“數據行級權限”,選擇要設置權限的數據連接,設置方式選擇“動態值”,選擇要設置權限的表跟字段,選擇要匹配的用戶屬性,在本例中,即將“地區”字段匹配“地區”屬性。
3. 保存后,將該“數據行級權限”分配給所有用戶,則每個用戶訪問報告時會根據該用戶所在大區來篩選數據,只能看到自己大區的數據。
(未設置數據權限)
(設置了數據權限)
結語
為了應對更多復雜各異的組織架構和管理體系,我們仍然在不停地探索之中。具體來說,目前的分級授權體系僅支持對資源的分級授權,還無法做到對數據權限的分級授權,我們正在積極尋找更完美的解決辦法,在保持用戶低使用成本和高數據安全的同時,實現更高的靈活性。
編輯:jq
-
數據
+關注
關注
8文章
7064瀏覽量
89105 -
RBAC
+關注
關注
0文章
44瀏覽量
9973
原文標題:權限體系設計 : 網易有數 BI 功能品鑒
文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論