多租户

功能概述
多租户(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 句柄