您的位置:首頁 > 軟件教程 > 教程 > 多租戶系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計與RuoYi系統(tǒng)的借鑒

多租戶系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計與RuoYi系統(tǒng)的借鑒

來源:好特整理 | 時間:2024-10-23 09:47:49 | 閱讀:176 |  標簽: a S SaaS 設(shè)計   | 分享到:

導(dǎo)航 引子 場景梳理 基于角色的訪問控制(RBAC) 多租戶系統(tǒng)的權(quán)限設(shè)計 RuoYi系統(tǒng)的數(shù)據(jù)權(quán)限設(shè)計 最終設(shè)計方案 參考 本文首發(fā)《智客工坊-Saas多租戶數(shù)據(jù)權(quán)限設(shè)計(參考RuoYi)》,共計3656字,閱讀時長5min。 引子 最近公司打算把內(nèi)部的系統(tǒng)打造成商業(yè)化的Saas產(chǎn)品,我們組承擔(dān)了

最近公司計劃將內(nèi)部系統(tǒng)打造成商業(yè)化的Saas產(chǎn)品,我們組負責(zé)產(chǎn)品的研發(fā)任務(wù)。理論上,這套系統(tǒng)在公司內(nèi)部業(yè)務(wù)中已經(jīng)打磨了5年+,對于我們這個細分行業(yè)來說已經(jīng)非常成熟,只需要稍加改造,適配多租戶模式即可。但是,在項目架構(gòu)設(shè)計中,發(fā)現(xiàn)有很多需要重新梳理和考慮的地方。今天,主要是針對數(shù)據(jù)權(quán)限這塊的設(shè)計和大家分享一下。

在IM聊天場景中,有個很重要功能是,每個用戶都要查看自己的會話(聊天記錄)。比如,普通咨詢師可能就只能查看自己的聊天,主管可以查看組員咨詢師的聊天,CEO可以查看所有咨詢師的聊天。這樣的需求在我們的系統(tǒng)中應(yīng)該如何實現(xiàn)呢?

基于角色的訪問控制(Role-based access control,簡稱 RBAC),指的是通過用戶的角色(Role)授權(quán)其相關(guān)權(quán)限,這實現(xiàn)了更靈活的訪問控制,相比直接授予用戶權(quán)限,要更加簡單、高效、可擴展。

多租戶系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計與RuoYi系統(tǒng)的借鑒

當(dāng)使用 RBAC 時,通過分析系統(tǒng)用戶的實際情況,基于共同的職責(zé)和需求,授予他們不同角色。你可以授予給用戶一個或多個角色,每個角色具有一個或多個權(quán)限,這種 用戶-角色、角色-權(quán)限 間的關(guān)系,讓我們可以不用再單獨管理單個用戶,用戶從授予的角色里面繼承所需的權(quán)限。

一般來說,我們會將用戶的權(quán)限分為菜單權(quán)限和數(shù)據(jù)權(quán)限。菜單權(quán)限:控制用戶能看到那些菜單或者按鈕。數(shù)據(jù)權(quán)限:控制用戶能看到的數(shù)據(jù)范圍。在開始設(shè)計之前,我們可以看看用戶登錄+授權(quán)的過程,在用戶返回的信息中就會包含角色(roleCodes)、菜單(permCodes)和數(shù)據(jù)權(quán)限(dataCodes)信息。所以,角色(roleCodes)、菜單(permCodes)和數(shù)據(jù)權(quán)限(dataCodes)就是需要我們提前設(shè)計好的。

多租戶系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計與RuoYi系統(tǒng)的借鑒

根據(jù)IM自身的業(yè)務(wù),我們對角色的設(shè)計如下:咨詢師(counselor_role)、主管(manager_role)、管理員(admin_role)。菜單權(quán)限:賬號管理(zhanghaoguanli)、公共設(shè)置(gonggongshezhi)、...(根據(jù)實際情況定義)。令人頭疼的其實是數(shù)據(jù)權(quán)限的設(shè)計,我們期望定義一種通用的數(shù)據(jù)權(quán)限。所以,這里就不得不提到RuoYi系統(tǒng)。

在無意間,看到了一篇介紹RuoYi系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計分析的文章-《深入分析若依數(shù)據(jù)權(quán)限@datascope (注解+AOP+動態(tài)sql拼接) 【循序漸進,附分析過程】》。于是,筆者對這個開源系統(tǒng)進行了體驗。(點此處直達)[https://demo.ruoyi.vip/index]。登錄RuoYi系統(tǒng)后臺,映入眼簾的是一堆的大家再熟悉不過的系統(tǒng)菜單。

  • 系統(tǒng)管理
    • 用戶管理
    • 角色管理
    • 菜單管理
    • 部門管理
    • 崗位管理
    • 字典管理
    • ...

這里重點查看角色管理菜單,在列表的操作一欄,可以看到有個更多按鈕,展開更多按鈕,數(shù)據(jù)權(quán)限按鈕暴露出來。

多租戶系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計與RuoYi系統(tǒng)的借鑒

點擊數(shù)據(jù)權(quán)限按鈕,就可以看到數(shù)據(jù)權(quán)限配置窗口。在這里可以看到數(shù)據(jù)權(quán)限分類如下:全部數(shù)據(jù)權(quán)限、自定義數(shù)據(jù)權(quán)限、本部門數(shù)據(jù)權(quán)限、本部門及以下數(shù)據(jù)權(quán)限、僅本人數(shù)據(jù)權(quán)限。可以看到這里的數(shù)據(jù)權(quán)限都是基于組織架構(gòu)設(shè)計的。需要指出的是,這里的自定義數(shù)據(jù)權(quán)限其實也是基于組織架構(gòu)的選擇,只是可以自由選擇(比如適配跨部門場景)?傮w來講,RuoYi系統(tǒng)數(shù)據(jù)權(quán)限的設(shè)計是中規(guī)中矩的,應(yīng)該屬于比較通用的設(shè)計。這也是我們目前的商業(yè)化項目設(shè)計中值得借鑒的。

或許還有更好的設(shè)計方案,歡迎大家提出更好的建議。

多租戶系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計與RuoYi系統(tǒng)的借鑒
  • 《什么是基于角色的訪問控制(RBAC)》
  • ruoyi官網(wǎng)
  • 《RuoYi-Vue 源碼》
  • 《深入分析若依數(shù)據(jù)權(quán)限@datascope (注解+AOP+動態(tài)sql拼接) 【循序漸進,附分析過程】》
小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認同期限觀點或證實其描述。

a 1.0
a 1.0
類型:休閑益智  運營狀態(tài):正式運營  語言:中文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《alittletotheleft》官網(wǎng)正版是一款備受歡迎的休閑益智整理游戲。玩家的任務(wù)是對日常生活中的各種雜亂物

相關(guān)視頻攻略

更多

掃二維碼進入好特網(wǎng)手機版本!

掃二維碼進入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)