低代碼平臺(tái)的多租戶SAAS系統(tǒng)實(shí)戰(zhàn)解決方案—JeecgBoot(低代碼 saas)
需求:快速實(shí)現(xiàn)全系統(tǒng)的Saas租戶方案,通過(guò)租戶ID進(jìn)行數(shù)據(jù)隔離,輕松實(shí)現(xiàn)Saas多租戶一鍵切換。
租戶設(shè)計(jì)思路
1、開(kāi)啟全系統(tǒng)租戶隔離
- 開(kāi)啟方法
org.jeecg.config.mybatis.MybatisPlusSaasConfig#OPEN_SYSTEM_tenant_CONTROL 設(shè)置成 true
- 開(kāi)啟實(shí)現(xiàn)功能:系統(tǒng)管理等模塊默認(rèn)實(shí)現(xiàn)租戶隔離,涉及租戶用戶、租戶角色、部門、我的部門、字典、分類字典、多數(shù)據(jù)源、職務(wù)。
- 注意:系統(tǒng)目前有系統(tǒng)用戶、系統(tǒng)角色菜單,這個(gè)是給超級(jí)管理員用的,不做租戶隔離。
2、多個(gè)租戶登錄選擇問(wèn)題
最新版租戶模式,不再?gòu)棿疤崾具x擇租戶登錄,系統(tǒng)會(huì)默認(rèn)選擇一個(gè)租戶登錄或者選擇上次登錄的租戶登錄,點(diǎn)擊右上角 “切換部門”切換租戶
3、租戶權(quán)限設(shè)置
- 目前租戶角色和租戶部門,不涉及租戶權(quán)限功能,只做最簡(jiǎn)單的對(duì)象定義
租戶角色只用于審批(類似職務(wù)),不參與權(quán)限授權(quán),可以給租戶用戶分配角色。
- 租戶的個(gè)性化權(quán)限,可以通過(guò)租戶下的套餐實(shí)現(xiàn),自定義每個(gè)租戶的權(quán)限
4、新功能做租戶控制
針對(duì)新功能還是采用 mybatis plus提供的租戶方案,具體參考下面文檔。
https://help.jeecg.com/javaback/saasnew.html
5、系統(tǒng)管理模塊是如何實(shí)現(xiàn)多租戶?
- 一部分是通過(guò)硬編碼實(shí)現(xiàn)數(shù)據(jù)查詢,按租戶 ID 隔離
一部分是直接通過(guò)MybatisPlusSaasConfig加入tenantTable的表配置
支持更多功能
關(guān)于租戶的實(shí)戰(zhàn)應(yīng)用,可以參考敲敲云的設(shè)計(jì),目前敲敲云用的就是jeecgboot底層代碼實(shí)現(xiàn)。
a. 新注冊(cè)用戶支持選擇租戶加入,通過(guò)租戶的門牌號(hào)b. 新注冊(cè)用戶支持創(chuàng)建租戶c. 支持邀請(qǐng)人加入租戶d. 支持一個(gè)人加入多個(gè)租戶e. 租戶支持f. 員工離職(移出租戶)