管理应用权限
通过权限管理,可以控制不同用户能够访问或修改的数据,以及能够调用的 API、行为流、AI 智能体和支付能力。权限由后端校验,不应只依赖页面条件或组件显示状态限制用户操作。
权限如何生效
- 角色是一组权限配置,可以分配给多个用户。
- 一个用户可以拥有多个角色,最终权限为这些角色所授予权限的并集。
- 数据权限控制角色能够访问或修改的表、字段和数据行。
- 行为权限控制角色能够调用的 API、行为流、AI 智能体和支付能力。
系统提供两个内置角色:
- 已登录用户:自动应用于所有已登录用户。
- 游客:应用于未登录用户。微信小程序会静默登录,因此没有游客角色。
在编辑器中,开发者拥有完整的数据访问权限。验证线上权限时,应使用对应角色的用户身份测试。

创建角色并分配用户
创建角色
进入设置 → 权限管理。除内置角色外,还可以根据业务需要创建自定义角色。
| 项目版本 | 自定义角色数量 |
|---|---|
| 免费版 | 0 |
| 高级版 | 1 |
| 专业版 | 10 |
点击添加并填写角色名称。
角色名同步到后端后不能修改。创建角色时应使用稳定、明确的名称。

设置数据权限
选择角色和数据表,再依次设置表级、字段级和行级权限。用户拥有多个角色时,任一角色授予的权限都会计入最终权限。
-
表级权限:控制角色是否可以新增、查询、修改或删除表中的数据,以及是否可以查询总数、求和、平均值等聚合结果。

-
字段级权限:在支持字段配置的操作中,进一步限制角色可以访问或修改哪些字段。例如,可以允许用户修改订单状态,但不允许修改订单所属用户。

-
行级权限:使用高级筛选限制一次操作可以影响的数据行。例如,为订单查询和修改权限添加“创建者等于当前用户”的条件,使普通用户只能访问自己的订单。


一个最小的“只能修改自己的订单”配置包含:
- 在表级权限中允许普通用户查询和修改订单。
- 在字段级权限中排除不允许用户修改的字段。
- 分别为查询和修改添加“订单创建者等于当前用户”的高级筛选条件。
如果用户同时拥有授予更大范围权限的其他角色,最终可访问范围也会相应扩大。
设置行为权限
行为权限控制角色能否调用 API、行为流、AI 智能体和支付等后端能力。除支付外,可以使用高级筛选根据调用入参进一步限制权限,例如要求行为流的指定入参不为空。

行为流权限的检查范围如下:
- 从页面或组件调用行为流时,会检查当前用户权限。
- 通过接口直接调用行为流时,会检查调用用户权限。
- 系统触发器执行行为流时,不受用户角色权限限制。
- 在另一个行为流中通过“调用行为流”节点执行时,不受用户角色权限限制。
应用权限变更
修改角色定义、数据权限或行为权限后,需要执行同步变更或发布,新的权限配置才会在线上生效。仅保存配置不会改变当前线上版本。
给用户分配角色
权限配置完成后,可以通过以下方式给用户分配或移除角色:
- 手动分配:在权限管理中选择用户并调整其角色。
- 自动分配:在行为流中使用权限相关节点,例如在支付完成后为用户添加 VIP 角色。
给用户分配或移除角色会立即生效,不需要执行同步变更或重新发布。


验证和排查权限
使用游客、已登录用户或自定义角色对应的实际用户身份,分别测试需要允许和需要拒绝的操作。没有权限时,请求会返回类似以下错误:
{
"data": null,
"errors": [
{
"errorCode": 403,
"extensions": { "classification": "TABLE_ACCESS" },
"message": "User 1 has no permission for SELECT on order"
}
]
}错误信息使用简化的用户编号:User 1 表示 ID 为 100000000001 的用户。SELECT on order 表示该用户没有查询 order 表的权限。
排查时依次确认:
- 用户是否拥有预期角色。
- 对应角色是否获得表级和字段级权限。
- 行级高级筛选是否允许当前数据。
- 行为权限是否允许当前调用入口和入参。
- 权限配置是否已经同步或发布。
其他错误类型参阅错误参考。