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