多租户

功能概述
多租户(SaaS)是一种软件架构技术,允许一个软件实例同时为多个租户(如企业、组织或个人)提供服务。每个租户拥有独立的数据库,数据完全物理隔离,如同在使用专属的软件实例。
核心优势
- 成本效益:多个租户共享基础软件设施,降低开发、部署和维护成本
- 快速部署:新租户可快速接入系统,无需漫长的软件安装配置过程
- 统一管理:在一个平台上对所有租户进行统一管理,提高管理效率
- 数据安全:每个租户独立数据库,天然物理隔离,避免数据泄露风险
使用方法
启用多租户
在 Program.cs 中添加 AddEasyAdminBlazorMultiTenant() 扩展方法,自动启用多租户功能:
builder.AddEasyAdminBlazor(new EasyAdminBlazorOptions { ... })
.AddEasyAdminBlazorMultiTenant();
租户识别
系统使用请求的 Host(域名)自动识别当前租户。每个租户绑定一个唯一的域名,如:
https://tenant1.yourdomain.com→ 识别为 tentant1https://localhost:7230→ 开发环境通过端口区分
租户的 Host 字段支持三种格式:localhost:7230、https://localhost:7230、http://localhost:7230。
添加租户(管理员视角)
- 登录系统管理后台,在导航菜单中找到 "多租户" 模块进入。
- 点击 "添加" 按钮,在弹窗中填写:
- 基本设置:租户编码(唯一标识,如
vip)、域名、数据库类型、连接字符串、名称、描述 - 功能菜单:为租户分配可访问的菜单
- 基本设置:租户编码(唯一标识,如
- 点击 "保存",系统自动完成以下操作:
- 创建租户记录(主库)
- 数据库中创建租户的管理员角色和初始管理员账号
- 同步选中的菜单到租户数据库
- 自动建表(
UseAutoSyncStructure)
编辑租户
- 找到目标租户,点击 "编辑" 按钮。
- 修改基本信息或调整菜单权限。
- 菜单变更会自动同步到租户数据库。
删除租户
- 勾选要删除的租户(可多选),点击 "删除"。
租户登录
租户通过自己的域名访问系统,使用创建时自动生成的管理员账号登录。默认密码规则:{租户编码}123(如 vip123)。
文件隔离
多租户启用时,上传文件自动按租户 code 分目录存储:wwwroot/uploads/{tenantCode}/yyyy/MM/dd/。
界面说明
租户列表
- 租户编码:唯一标识
- 租户域名:绑定的 Host
- 数据类型:使用的数据库类型(为空表示使用共享库)
- 租户名称:显示名称
- 是否启用:启用/禁用
- 创建人/创建时间:操作审计信息
编辑弹窗
包含两个选项卡:
- 基本设置:编码、域名、数据库类型、连接字符串、名称、描述、启用状态
- 功能菜单:菜单树勾选分配权限(子菜单选中时自动补全父菜单)
相关实体/服务
SysTenant— 租户实体ITenantService/MultiTenantService— 租户服务FreeSqlCloud— 多租户数据库调度MainOrmHandle— 主库 ORM 句柄