在企業(yè)生產(chǎn)環(huán)境中,用戶權(quán)限管理是非常重要的一個(gè)環(huán)節(jié),涉及數(shù)據(jù)安全管控处硬。Superset 實(shí)現(xiàn)了基于角色的訪問控制(Role Based Access Control, RBAC), 這是一種非常流行和高效的訪問控制機(jī)制。RBAC 可以將復(fù)雜的安全權(quán)限規(guī)則抽象為簡單的角色概念, 通過為用戶分配角色實(shí)現(xiàn)其對(duì)數(shù)據(jù)和對(duì)象的控制。
RBAC的基本原理
RBAC(Role-Based Access Control)是一種基于角色的訪問控制機(jī)制烫葬。其基本思想是:
- 將權(quán)限分配給角色, 而不是直接分配給用戶。一個(gè)角色包含一組權(quán)限凡蜻。
- 將用戶與角色進(jìn)行關(guān)聯(lián), 一個(gè)用戶可以被分配一個(gè)或多個(gè)角色搭综。
- 用戶通過所擁有的角色間接獲得權(quán)限。
RBAC有以下基本規(guī)則:
- 分離職責(zé): 創(chuàng)建角色時(shí)按職責(zé)進(jìn)行分離, 如普通用戶角色咽瓷、管理員角色等设凹。
- 最少權(quán)限: 每個(gè)角色分配的權(quán)限應(yīng)該是其工作職責(zé)所需要的最少權(quán)限。
- 不可傳遞的角色繼承: 如果角色A繼承角色B, 則A擁有B的所有權(quán)限, 但B不擁有A的權(quán)限茅姜。
- 角色指定: 用戶只能通過被分配的角色獲得權(quán)限, 不能直接獲得權(quán)限闪朱。
- 相關(guān)的角色和權(quán)限: 將權(quán)限按職責(zé)進(jìn)行分組并賦予角色可以簡化管理。
RBAC通過上述規(guī)則實(shí)現(xiàn)了權(quán)限與角色的解耦, 使用戶钻洒、權(quán)限奋姿、角色三者之間建立了清晰的關(guān)聯(lián)關(guān)系。這使得權(quán)限的授權(quán)管理變得非常靈活與簡單素标。通過為用戶分配適當(dāng)?shù)慕巧? 就可以實(shí)現(xiàn)對(duì)其訪問權(quán)限的控制, 這是RBAC流行于各大系統(tǒng)的基本原因称诗。
Superset就采用了RBAC實(shí)現(xiàn)細(xì)粒度數(shù)據(jù)訪問控制,通過創(chuàng)建不同的角色并分配相關(guān)權(quán)限,再將角色賦予用戶或用戶組, 可以實(shí)現(xiàn)對(duì)數(shù)據(jù)、查詢头遭、儀表盤等的安全管理寓免。
Superset 管理用戶和權(quán)限
Superset可以有效地管理用戶, 主要包含以下功能:
- 創(chuàng)建用戶
可以在Superset的“用戶管理”頁面點(diǎn)擊“+ 新建用戶”按鈕創(chuàng)建一個(gè)新的用戶癣诱。需要輸入用戶名、密碼袜香、確認(rèn)密碼撕予、郵箱等信息。
- 修改用戶信息
在“用戶管理”頁面選擇一個(gè)用戶,點(diǎn)擊“編輯”按鈕可以修改其信息,包括用戶名蜈首、密碼实抡、郵箱、是否激活狀態(tài)等欢策。
- 刪除用戶
在“用戶管理”頁面選擇一個(gè)用戶,點(diǎn)擊“刪除”按鈕可以徹底刪除該用戶吆寨。刪除后,該用戶的一切訪問權(quán)限、內(nèi)容均會(huì)被刪除踩寇。
用戶組管理
可以在Superset里創(chuàng)建用戶組,將多個(gè)用戶放在同一個(gè)用戶組里統(tǒng)一管理啄清。在“用戶組管理”頁面可以創(chuàng)建、修改和刪除用戶組姑荷。-
權(quán)限管理
Superset采用角色權(quán)限管理的模式盒延。有兩種角色類型:- 預(yù)定義角色:提供一組預(yù)定義好的角色,如Alpha鼠冕、Gamma添寺、Delta等,包含不同的權(quán)限組。
- 自定義角色:可以創(chuàng)建自定義角色,選擇相應(yīng)的權(quán)限粒度進(jìn)行分配,如數(shù)據(jù)訪問懈费、SQL表創(chuàng)建计露、儀表盤創(chuàng)建權(quán)限等。
將創(chuàng)建好的角色分配給用戶或用戶組,即可控制其對(duì)應(yīng)的數(shù)據(jù)集和功能訪問權(quán)限憎乙。
- Auditing日志記錄
Superset會(huì)記錄詳細(xì)的用戶交互日志,如登錄日志票罐、SQLexecuted日志、Dashboard訪問日志等泞边。這些日志可以追溯數(shù)據(jù)和功能的訪問記錄,用于權(quán)限管理判斷和數(shù)據(jù)安全審查该押。
Auditing 日志的查詢示例,可以在 SQL Lab 中執(zhí)行
SELECT * FROM logs
WHERE
user_id=(SELECT id FROM ab_user WHERE username='gamma')
AND schema_name='examples'
AND dttm
BETWEEN DATE_SUB(NOW(), INTERVAL 3 DAY) AND NOW()
綜上,Superset提供比較全面而細(xì)致的用戶管理功能阵谚。通過控制用戶蚕礼、用戶組和權(quán)限,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)、SQL查詢和儀表盤等的安全訪問管理梢什。這是Superset作為企業(yè)BI平臺(tái)廣泛應(yīng)用的重要條件奠蹬。
如果你需要自定義一些用戶權(quán)限,可以參考我的下一篇~ 如果對(duì)Superset的使用想要深入交流嗡午,也歡迎你來connect囤躁。
國內(nèi)的公司使用 Superset 的越來越多了,很多開發(fā)遇到問題的也都主動(dòng)找到我。我都非常樂意分享我對(duì)Superset的實(shí)踐 威信: pabi2020狸演。一方面可以了解大家關(guān)注什么問題言蛇,另一方面我可以繼續(xù)整理和輸出。