多租户

tenant

功能概述

多租户是一种软件架构技术,允许一个软件实例同时为多个租户(如企业、组织或个人)提供服务。每个租户在系统中拥有相对独立的资源和数据,就好像在使用专属的软件实例一样。系统通过有效的隔离机制,确保不同租户之间的数据安全和操作互不干扰。市面上大多数框架只提供了一种数据隔离方式(要么字段隔离,要么数据库隔离,要么表隔离),我们提供了两种数据隔离方式,可同时使用,也可分开使用(即多个人可共享同一个库,指定租户单独一个数据库):

  • 字段隔离:每个租户的数据存储在不同的数据库表中,通过字段区分不同租户的数据。
  • 数据库隔离:每个租户的数据存储在不同的数据库中,通过数据库区分不同租户的数据。

核心优势

  • 成本效益:多个租户共享同一套软件基础设施,降低了开发、部署和维护成本。服务提供商可以通过规模效应,以更低的成本为更多用户提供服务。
  • 快速部署:新租户能够快速接入系统,无需等待漫长的软件安装和配置过程,大大缩短了上线周期。
  • 统一管理:服务提供商可以在一个平台上对所有租户进行统一管理,如软件更新、功能升级等,提高了管理效率。

隔离类型

  • 数据隔离:每个租户的数据存储相互独立,确保不同租户的数据不会泄露或混淆。可以采用不同的数据库或使用数据分区等方式实现。

使用方法

租户识别

  1. 系统使用独立的域名识别租户,每个租户的域名是唯一的。
  2. 系统通过域名解析将请求路由到对应的租户。

租户登录

  1. 打开系统登录页面,输入在注册时设置的管理员账号和密码。

租户管理(管理员视角)

作为系统管理员,可在后台对租户进行全面管理,包括添加、修改、删除租户,以及为租户设置菜单权限。

添加租户

  1. 登录系统管理后台,在导航菜单中找到 “租户管理” 模块,点击进入。
  2. 在租户管理页面,点击 “添加租户” 按钮,弹出添加租户对话框。
  3. 在对话框中填写租户的基本信息。
  4. 在功能菜单选项卡设置租户菜单。
  5. 点击 “保存” 按钮,系统将创建新租户并分配唯一的租户标识。

修改租户信息

  1. 在租户管理页面的租户列表中,找到需要修改的租户。
  2. 点击该租户所在行的 “编辑” 按钮,弹出编辑租户信息对话框。
  3. 在对话框中修改租户的相关信息。
  4. 点击 “保存” 按钮,更新租户信息。

删除租户

  1. 在租户管理页面的租户列表中,勾选需要删除的租户(可同时勾选多个)。
  2. 点击页面上方的 “删除租户” 按钮,系统会弹出确认对话框,提示删除操作不可逆且会删除该租户的所有相关数据。
  3. 确认无误后,点击 “确定” 按钮,系统将删除所选租户及其相关数据。

为租户设置菜单权限

  1. 在租户管理页面的租户列表中,找到需要设置菜单权限的租户,点击该租户所在行的 “菜单设置” 按钮。
  2. 进入菜单权限设置页面,页面左侧会显示系统的所有菜单树,右侧显示该租户当前拥有的菜单权限。
  3. 在左侧菜单树中勾选或取消勾选相应的菜单节点,为租户添加或移除菜单权限。支持展开和收缩菜单树,方便查找和选择。
  4. 勾选完成后,点击页面上方的 “保存” 按钮,系统将更新该租户的菜单权限。租户下次登录后,将只能看到并访问被授权的菜单。

租户管理(租户视角)

子账户管理

  • 添加子账户:登录租户管理后台,找到 “用户管理” 模块,点击 “添加用户”。填写用户信息,如用户名、密码、角色等,设置用户的访问权限,点击 “保存” 完成添加。
  • 编辑子账户:在用户列表中找到需要修改的用户,点击 “编辑” 按钮,修改相关信息后保存。
  • 删除子账户:勾选要删除的用户,点击 “删除” 按钮,确认操作后完成删除。

功能使用

租户登录后,可以根据分配的权限使用系统提供的各种功能。不同租户可能因购买的服务套餐不同,拥有不同的功能使用权限。在使用过程中,若遇到问题可以通过系统内的帮助文档或在线客服寻求支持。

界面说明

登录界面

  • 租户选择框:若用户拥有多个租户账号,可通过此下拉框选择要登录的租户。
  • 账号输入框:用于输入登录账号。
  • 密码输入框:用于输入登录密码。
  • 登录按钮:点击后验证账号密码,成功则进入租户专属界面。

租户管理后台

导航栏

  • 仪表盘:展示租户的关键数据统计信息,如用户数量、数据使用量等。
  • 用户管理:用于管理租户的子账户,包括添加、编辑、删除等操作。
  • 数据管理:进行数据的导入、导出、备份等操作。
  • 设置:可对租户的基本信息、安全设置、通知设置等进行配置。

主工作区

根据导航栏选择的不同模块,显示相应的操作界面。例如在 “用户管理” 模块,会显示用户列表,提供添加、编辑、删除等操作按钮;在 “数据管理” 模块,会显示数据导入导出的相关操作入口。