ObjectOS
配置权限

权限

身份、角色、权限集、记录访问与字段安全 —— 一页讲完整套访问模型。

权限

ObjectOS 借鉴企业软件二十年来行之有效的分层访问模型:身份 → 角色 → 权限集 → 记录访问 → 字段安全。每一层回答一个不同的问题,你可以忽略用不到的层。

一张图说明模型

Authentication       Who is the caller?

Identity             Which user/org/membership is active?

Roles                Where do they sit in the hierarchy?

Permission sets      What CAN they do — apps, objects, fields, system?

Record access        WHICH records can they touch?

Field security       For those records, which FIELDS are readable / writable?

每一层都由 security 插件强制执行。简单应用可以只使用权限集(不用角色、不用共享规则),等需求出现时再增补其余层。

第 1 层 —— 身份

身份对象存在你的项目数据库中。最重要的几个:

对象表示什么
sys_user一个能认证的人或服务账号
sys_org租户/工作空间边界(多租户应用)
sys_member用户在某组织内的成员资格(按成员资格分配角色)
sys_departmentsys_team可选的组织结构,用于共享规则
sys_invitation待接受的邀请
sys_session已认证的活动会话
sys_api_key绑定到用户的长期编程凭据

在多租户部署中:

  • 用户作用域限定到项目数据库。
  • 会话作用域限定到项目主机名。
  • 行级检查使用当前用户所在组织和权限。
  • 控制面用户不会自动成为业务用户——必须通过平台 SSO 或显式预置进行映射。

你可以在运行时通过 Console/_console/)创建/管理这些对象,也可以在 objectstack.config.ts 中为全新环境种入。

第 2 层 —— 角色

角色对组织结构建模(CFO → 财务经理 → 分析师)。它们存在的主要目的是让共享规则和报表能表达诸如"记录所有者的上级"之类的关系。需要层级访问时用角色;扁平团队则跳过。

参见 Roles

第 3 层 —— 权限集

权限集是授予能力的主要方式。它们直接附加到用户,或通过角色附加。

它们授予什么

类型示例
应用访问打开 CRM、打开支持门户
对象权限对某对象的记录进行 增/查/改/删
字段权限读取或更新特定字段
系统权限访问 Console、运行报表、导出数据、查看审计日志
集成权限使用 API Key、配置 Webhook、执行管理操作

对象权限标志

这些是 security 插件实际检查的标志名称:

标志含义
allowRead读取通过记录访问可见的记录
allowCreate创建新记录
allowEdit更新用户可见的记录
allowDelete删除用户可见的记录
viewAllRecords读取该对象每一条记录,忽略记录访问规则
modifyAllRecords更新/删除每一条记录;隐含 viewAllRecords

viewAllRecordsmodifyAllRecords 是对该对象的租户级超级用户授权。仅在显式的管理权限集中使用,不要放进任何面向普通用户的角色。

参见 Permission Sets

第 4 层 —— 记录访问

对于没有 viewAllRecords 的用户,他们能看到哪些行?

模型支持:

  • 隐式所有权(用户创建或拥有的行)
  • 共享规则(声明式 —— "团队 A 能看到团队 A 的记录")
  • 显式共享(sys_record_share 行——一次性共享)
  • 组织作用域(行的 org_id 与用户所在组织匹配)

参见 Record Access

第 5 层 —— 字段安全

即使用户能看到记录,单独的字段也可以是:

  • 隐藏 —— 字段被从 API 和 UI 响应中剥离。
  • 只读 —— 字段返回,但写入会被拒绝。

字段安全是按对象 + 按权限集设定的。典型用途:

  • sys_user 上的 salary 对 HR 之外的所有人隐藏。
  • external_account_id 对支持代表设为可读但不可编辑。

它在与对象权限相同的求值器中强制执行,因此在 REST、ObjectQL 和 Console 上统一生效。

从哪里入手

如果你在构建 ……使用
单团队的内部工具仅权限集
多团队、经理需要看报表的应用角色 + 权限集
多租户 SaaS 形态的应用组织作用域 + 权限集
带 PII 的合规应用在上面叠加字段安全
复杂的 CRM 类应用完整栈

诊断与审计

  • /_console/ 显示任一用户当前评估出的有效权限。
  • 审计日志(sys_audit_log)记录权限敏感变更——授权、角色分配、权限集编辑。
  • 被拒请求记录失败的具体规则(对象权限 vs 记录访问 vs 字段安全),便于支持人员快速回答"为什么我看不到这个?"。

On this page