Skip to content

身份边界矩阵

这页解决什么问题

LuckyColor 里最常见的三类身份是:

  • 平台管理员
  • 租户管理员
  • 普通成员

大家在讨论权限时,经常会混着说“角色”“身份”“边界”“菜单”“按钮”,结果最后谁能做什么并不清楚。

这页专门回答一个更实际的问题:

  • 默认情况下,这三类身份分别应该管到哪里,止步于哪里

先说结论

可以先把三类身份理解成三种默认视角:

身份默认视角一句话理解
平台管理员平台视角管租户,也能看平台级配置与租户内核心管理能力
租户管理员当前租户视角只在本租户内做组织、账号、角色、菜单等日常管理
普通成员个人使用视角主要使用系统,不负责管理平台或租户

一个很重要的前提

这页讲的是“默认边界矩阵”,不是“永远固定死的硬编码规则”。

真实系统里,最终权限仍然取决于:

  1. 当前用户绑定了哪些角色
  2. 这些角色拿到了哪些菜单
  3. 这些角色拿到了哪些按钮权限
  4. 这些角色的数据范围是什么
  5. 当前租户状态是否允许访问

所以这页适合拿来做:

  • 团队沟通口径
  • 默认角色设计说明
  • 排查“这个人为什么不该看到这里”的参考

三类身份的默认边界矩阵

总表

能力域平台管理员租户管理员普通成员
登录系统可以可以可以
查看工作台可以可以可以
查看当前用户资料可以可以可以
查看当前租户内基础菜单可以可以可按授权查看
管理租户列表可以不应默认开放不应开放
创建 / 更新租户可以不应默认开放不应开放
管理租户套餐可以不应默认开放不应开放
将套餐绑定到租户可以不应默认开放不应开放
管理当前租户用户可以可以不应默认开放
给用户分配角色可以可以不应开放
管理当前租户角色可以可以不应默认开放
配置角色菜单 / 数据权限可以可以不应开放
管理当前租户部门可以可以不应默认开放
管理当前租户菜单可以可以不应开放
管理字典 / 配置 / 公告可以常见可开放不应默认开放
查看或修改本人偏好可以可以可以
上传业务文件可按页面授权可按页面授权可按页面授权
查看系统日志常见可开放视租户治理要求而定不应开放

分模块理解会更直观

1. 平台级能力

平台级能力最典型的就是:

  • 租户管理
  • 租户套餐
  • 平台级运营视角

这些能力默认应该只给平台管理员。

原因很简单:

  • 它们影响的不是一个租户,而是整个平台的租户开通和运营边界

2. 租户内治理能力

租户内治理通常包括:

  • 用户管理
  • 角色管理
  • 部门管理
  • 菜单管理
  • 配置、公告、字典等租户内管理页

这些能力默认更适合:

  • 平台管理员
  • 租户管理员

普通成员一般不承担治理职责,所以不应默认开放。

3. 个人使用能力

个人使用能力更接近:

  • 登录
  • 看工作台
  • 查看自己能访问的菜单
  • 修改自己的偏好设置
  • 在被授权页面中完成业务操作

这部分普通成员通常可以拥有,但范围仍要看具体页面授权。

分身份展开说明

平台管理员

默认定位

平台管理员是平台运营和平台治理身份,典型角色编码是:

  • super_admin

默认应该能做什么

  • 管理租户
  • 管理租户套餐
  • 查看和调整平台级系统能力
  • 进入租户内核心管理模块
  • 看到完整或接近完整的数据范围

默认不该忽略什么风险

平台管理员虽然边界最大,但也最需要注意:

  • 不能把“平台管理员”误当成所有页面永久绕过逻辑
  • 涉及租户切换、租户冻结、租户过期时仍要受租户状态校验
  • 关键操作最好保留系统日志和安全审计

租户管理员

默认定位

租户管理员负责当前租户的日常治理,典型角色编码是:

  • tenant_admin

默认应该能做什么

  • 管理本租户用户
  • 管理本租户角色
  • 管理本租户部门
  • 管理本租户菜单
  • 维护字典、配置、公告等租户内后台能力

默认不应该碰什么

租户管理员默认不应越过租户边界,通常不应直接拥有:

  • 平台租户列表管理权
  • 新建 / 修改其他租户的能力
  • 租户套餐平台级运营能力

最容易混淆的一点

“租户管理员权限很大”不等于“租户管理员就是平台管理员”。

它的大,是在当前租户内部大,而不是对全平台大。

普通成员

默认定位

普通成员是系统使用者,典型角色编码是:

  • tenant_member

默认应该能做什么

  • 登录
  • 看自己有权访问的页面
  • 使用工作台
  • 处理个人相关操作
  • 在授权范围内查看自己的数据或本部门数据

默认不应该做什么

普通成员默认不应承担系统治理动作,例如:

  • 管用户
  • 管角色
  • 管菜单
  • 管部门
  • 管租户
  • 管套餐

数据范围通常更小

普通成员最常见的数据范围是:

  • SELF

也就是更偏“只能看本人相关数据”。

为什么同样是管理员,还要区分平台和租户两层

因为这两层解决的是不同问题。

平台管理员关心

  • 平台上有哪些租户
  • 每个租户用哪个套餐
  • 哪些租户启用、冻结、过期

租户管理员关心

  • 当前租户有哪些用户
  • 当前租户角色怎么授权
  • 当前租户部门怎么维护

如果不分这两层,就很容易把 SaaS 平台做成“所有管理员都能碰所有租户”的高风险结构。

边界矩阵和菜单 / 按钮 / 数据权限是什么关系

这三者不是互斥关系,而是从粗到细的三层。

第一层:边界矩阵

回答的是:

  • 某类身份默认应该进入哪些能力域

第二层:菜单权限

回答的是:

  • 这个人能不能看到某个模块、某个页面

第三层:按钮权限与数据权限

回答的是:

  • 这个人能不能点击某个动作
  • 即使进了页面,能看到多大范围的数据

所以边界矩阵更像:

  • 权限设计的顶层口径

而菜单、按钮、数据权限是:

  • 真正落到代码和数据库里的执行层

排查问题时怎么用这张矩阵

场景 1:租户管理员看到了租户中心

优先怀疑:

  1. 是否误授予了平台级菜单
  2. 是否把平台级按钮权限给到了租户管理员
  3. 是否前端菜单过滤口径和后端权限口径不一致

场景 2:普通成员能修改用户或角色

优先怀疑:

  1. 角色菜单授权是否超出预期
  2. 按钮权限码是否分配过多
  3. 页面是否漏加权限控制
  4. 后端控制器是否漏加权限装饰器

场景 3:平台管理员反而进不去某些租户内页面

优先怀疑:

  1. 当前租户上下文是否正确
  2. 租户是否禁用、冻结或过期
  3. 平台管理员是否真的拿到了对应菜单或按钮权限
  4. 当前页面是否叠加了租户内数据范围限制

推荐的团队使用方式

如果你们后续要继续扩展 LuckyColor,我建议把这页当成:

  • 默认角色设计说明
  • 权限评审 checklist
  • 新页面菜单与按钮授权的参考基线

新增管理页面时,先问三个问题:

  1. 这是平台级能力,还是租户级能力
  2. 租户管理员是否应该默认拥有
  3. 普通成员是否应该只看结果、不做治理

推荐配合阅读

Built with VitePress for LuckyColor SaaS.