配置权限
权限集
授予应用、对象、字段以及系统权限。
权限集
权限集是授予能力的主要方式。它们可以直接分配给用户,或通过角色间接分配。
权限集控制什么
| 权限类型 | 示例 |
|---|---|
| 应用访问 | 用户可以打开 CRM 或 Console |
| 对象权限 | 创建、读取、更新、删除记录 |
| 字段权限 | 读取或更新指定字段 |
| 系统权限 | 访问 Console、运行报表、导出数据 |
| 集成权限 | 使用 API Key、Webhook 或管理操作 |
对象权限
对象权限回答:
Can this user perform this operation on this object at all?权限集授权使用以下标志名(由 security 插件的权限求值器强制执行):
| 标志 | 含义 |
|---|---|
allowRead | 读取记录访问规则允许的记录 |
allowCreate | 创建记录 |
allowEdit | 更新记录访问规则允许的记录 |
allowDelete | 删除记录访问规则允许的记录 |
viewAllRecords | 读取该对象的每一条记录,绕过记录访问 |
modifyAllRecords | 更新或删除该对象的每一条记录,绕过记录访问;读取上隐含 viewAllRecords |
除非 viewAllRecords 或 modifyAllRecords 绕过了行级边界,记录访问仍然生效。把这些标志保留给管理权限集——它们实际上是对该对象的租户级超级用户授权。
系统权限
系统权限用于平台级操作,例如:
- 访问 Console;
- 管理用户;
- 管理角色和权限集;
- 运行报表;
- 导出报表;
- 管理集成;
- 查看审计日志。
让系统权限与业务对象权限保持分离,便于管理员审计。
推荐的权限集
从几个具名权限集开始:
| 权限集 | 用途 |
|---|---|
| Basic User | 登录并访问主应用 |
| Setup Administrator | 管理用户、角色、设置和诊断 |
| Report Viewer | 查看报表和仪表盘 |
| Integration Operator | 管理 Webhook/API Key |
| Support User | 读取/更新支持类对象 |
再为客户的应用添加领域特定的权限集。
字段安全(附录)
权限集也承载字段级授权。即使用户能读取一条记录,单独的字段也可以被隐藏或设为只读。
两种模式
| 模式 | 效果 |
|---|---|
| 隐藏 | 字段从 API 响应和 Console 视图中完全剥离 |
| 只读 | 字段返回,但写入被拒绝 |
在哪里强制执行
检查对象权限的同一求值器在每条路径上都应用字段规则——REST、ObjectQL、生成的 Console 表单、导出。没有"绕过"它的低层 API。
典型模式
| 用例 | 建议 |
|---|---|
sys_user 上的 HR 数据(薪资、SSN) | 对除 HR 权限集外的所有人隐藏 |
| 外部系统标识符 | 对支持只读,对集成运维可写 |
product 的内部成本 vs 客户价格 | 对销售隐藏 cost,对财务呈现 |
| 含 PHI 的备注字段 | 除包含相关临床角色的权限集外一律隐藏 |
编写建议
- 当字段承载敏感数据时,默认选择隐藏而非只读 —— 只读仍然会把值泄漏到响应和日志中。
- 把字段规则打包到匹配真实角色的权限集(
HR Manager、Finance Read-only),而不是为每个字段单独建一套——更易审计。 - 合规场景下,把字段安全与审计日志保留期搭配使用,事后才能回答"谁看过这条记录?"。