权限与安全

谁能看什么、谁能改什么——在运行时强制执行。

拿一个销售组织来说:代表只能看自己团队的客户,成本价字段对他们脱敏,经理能看整个大区,审计随时要查"这条折扣谁改的"。在 ObjectOS 里,这套边界是一份可审阅的定义——在每一次查询、API 调用和 AI 工具调用上强制执行。

ObjectOS product surface connecting business data, applications, and AI agents
AI 编写元数据 对象、权限、流程、工具
审阅 diff 业务权限、数据访问、审批
运行时 执行策略 UI、API、审计、MCP、动作
3 层
对象、记录、字段三级控制,一个模型
按用户
AI Agent 继承登录用户的权限
不可变
读、写、授权与工具调用全程留痕

权限即元数据

审阅者真的读得懂的权限。

这就是那个销售场景:支持工单可读可建、客户只读,成本相关字段只读、SSN 完全不可见,行级规则限定"只看本团队"。运行时在所有入口统一执行——UI、API 和 AI 工具。

export const SupportPermissionSet = {
  name: 'support_agent',
  label: 'Support Agent',
  objects: {
    support_case: { allowRead: true, allowCreate: true, allowEdit: true, allowDelete: false },
    crm_account: { allowRead: true, allowCreate: false, allowEdit: false, allowDelete: false },
  },
  // Field-level security
  fields: {
    payout: { readable: true, editable: false },
    ssn: { readable: false, editable: false },
  },
  // Row-level security — CEL predicates enforced on every query
  rowLevelSecurity: [
    {
      name: 'case_own_team',
      label: 'Own Team Cases Only',
      object: 'support_case',
      operation: 'select' as const,
      using: 'team == current_user.team',
      roles: ['support'],
      enabled: true,
      priority: 10,
    },
  ],
};

访问模型

把销售组织的边界一层层落下来

一个模型覆盖全谱系——从大范围的角色授权到单条共享记录——例外不再演变成定制代码。

角色与权限集

"销售代表"是一个权限集:客户可读可建、订单可编辑、报价单不可删。默认安全姿态——没有定义明确允许之前,什么都不可读。

行级规则

"team == current_user.team" 一行表达式,代表就只看本团队;换成沿组织层级向上,经理就看整个大区——过滤发生在查询引擎内部,绕不过去。

字段级安全

成本价对代表只读、SSN 完全不可见——被脱敏的字段在 UI、API、导出和每一条 AI 回答里都保持脱敏。

记录共享

跨团队协作一单大客户?把这一条记录共享给协作人,不用扩大整个角色——例外被记录、可见、可撤销。

租户隔离

组织与工作区在运行时层保持隔离,多团队、多客户部署不会有任何意外共享。

权限管理界面

矩阵里勾出来,日志里查得到

Agent 写的权限定义,管理员在开源控制台里打开就是熟悉的矩阵——出了问题,审计查看器一条条对得上。

权限矩阵编辑器

Salesforce 式布局:上半屏是对象级增删改查与 View All/Modify All 勾选,点中某个对象,下半屏立即换成它的字段级读/写矩阵。

看得见的分配

每个权限集页面直接列出"分配给了谁"——审阅权限时不用去别处反查。

审计日志查看器

按动作、对象、操作者、时间筛选;点开任何一条,侧抽屉展示完整事件与字段的旧值 → 新值 diff——"这条折扣谁改的"三次点击有答案。

AI 调用并排可查

AI 工具调用和人的操作出现在同一份日志里,同样的筛选、同样的 diff——审查 AI 和审查人是同一种工作。

AI 同规

Agent 拿到的是你的权限模型,不是服务账号

失去 AI 控制最快的方式就是给它超级用户权限。ObjectOS 从不这么做:每个 Agent 动作都以发起它的登录用户身份执行。

用户级执行

代表问 AI"我的客户里谁最可能续约",AI 看到的就是他那个团队的客户——成本价照样脱敏,一分不多。

写操作过审批

结构性变更与敏感动作在执行前排队等人签核,完整 diff 随附。

一切被审计

记录变更、权限授予、会话吊销、审批决定和 AI 工具调用,全部写入不可变审计日志。

决策面

改什么、谁来审、跑什么

审阅者会问AI 编写运行时执行
谁能读这个对象?元数据中的角色与权限集每次查询、API 调用、工具调用都校验
代表能看到哪些行?按所有者或团队圈定的行级规则过滤在查询引擎内部生效
AI 能看到成本价吗?带脱敏的字段规则UI、API、导出与 AI 回答全部脱敏
这个折扣谁改的?不用写——审计是运行时自带的审计查看器里旧值 → 新值一条条对

评审清单

安全评审应确认

  • 每个对象都有显式的读写策略。
  • 行级规则对应组织层级本身,而不是它的副本。
  • 敏感字段对所有消费方脱敏,包括 AI。
  • 结构性变更没有审批记录就无法上线。
  • 审计日志覆盖工具调用,而不只是记录写入。

FAQ

这一页应该回答的问题

AI Agent 有自己的服务账号吗?

没有。Agent 以登录用户身份行动,继承该用户的对象、行级与字段级权限。不存在可被泄露或滥用的特权 AI 身份。

权限矩阵和审计查看器在开源版里吗?

在。权限矩阵编辑器、审计日志查看器,连同角色、行级规则、字段级安全、共享、租户隔离与审计日志本身,都是开源版的一部分,并同等适用于 MCP 工具访问。

下一步

继续完善你的评估材料。