为 Grist 文档设置并验证行列级访问规则

把 Grist 文档共享给协作者时,可以把对方设为 Viewer、Editor 或 Owner。但实际业务往往更细:配送人员需要地址和电话,不需要财务表;采购人员需要物品信息,却不必看客户地址;某些人只能处理当前阶段的订单,也只能完成特定的状态转换。

访问规则把这些限制落实到表、列和行。本文完整译写 Grist 官方 Access rules 指南,以采购与配送协作为主线,保留启用、禁用、特殊权限、用户属性、引用、状态更新、链接密钥和验证步骤。原页面没有个人作者署名,也没有固定产品版本号;本文核对的是 2026-10-05 可读的官方帮助页。规则与操作仅经过静态审查,本次没有连接或修改任何 Grist 文档。

先了解基本角色与启用后的变化

在分享菜单的 Manage Users 中,可以邀请 Viewer、Editor、Owner,也可以按需开启公开查看或编辑。只有文档 Owner 能修改访问规则。Owner 可以从左侧的 Access Rules 入口打开规则页,也可以从 Manage Users 中选择 Open Access Rules。

原文假设我们经营一家采购、配送特殊物品的小公司,文档包含 Orders 和 Financials 两张表。现在要让更多员工协作,但只把工作所需的数据和操作交给他们。

没有启用访问规则时,文档协作者可以看到文档内全部数据;Editor 与 Owner 在文档内都能更改数据、结构、公式和布局,包括创建或删除表列、编辑公式、重排页面。启用访问规则后,默认只有 Owner 保留修改结构的权限,Editor 失去此权限;完整复制和下载也默认仅限 Owner。

点击 Enable Access Rules,阅读说明并选择 Continue 后,会进入规则配置页。此时顶部 Save 按钮可用,意味着更改尚未生效。必须点击 Save,启用及后续规则编辑才会应用。

要禁用规则,需要先手工删除可删除的规则。若底部没有 Disable Access Rules 按钮,就继续通过垃圾桶图标移除其他规则;没有可删除规则后,禁用按钮才会出现。禁用会恢复更宽的默认能力,应在清楚业务后果时操作。本文只解释该入口,没有执行它。

完整访问规则示例
完整访问规则示例。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
从文档菜单启用访问规则
从文档菜单启用访问规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
刚启用后的规则页面
刚启用后的规则页面。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
停用访问规则菜单
停用访问规则菜单。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
访问规则页面与添加规则入口
访问规则页面与添加规则入口。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

规则按什么顺序决定权限

默认规则反映基础角色:Owner 与 Editor 可读写数据,Viewer 只能读,其他用户没有相应访问权。这组基础规则不可直接修改;更细的限制通过在它们之前添加规则实现。结构权限是后文单独说明的文档级权限,不能从这里的“可读写数据”推断 Editor 仍可编辑公式。

对某一项权限,先检查列专属规则,再检查整表规则,最后回退到默认规则。每组规则内部自上而下,遇到第一个适用且明确允许或拒绝该权限的规则,就得到决定,后面的规则不再改写这个决定。某一行规则未设置的权限,可以继续向后寻找结果。

Grist 对每项权限依次检查列规则、整表规则和默认规则;每组自上而下,第一个明确允许或拒绝的适用规则作出决定
读规则时要逐项检查权限。示意图为本文绘制,不是 Grist 界面截图。

组内最后一个空条件在界面中显示为 Everyone Else,总是匹配;写成 True 的条件也总是匹配。常见条件如下:

user.Access == EDITOR
user.Access != OWNER
user.Access in [VIEWER, EDITOR]
user.Access not in [EDITOR, OWNER]

它们分别表示 Editor、非 Owner、Viewer 或 Editor,以及既非 Editor 也非 Owner。这些是 Grist 访问条件,语法来自受限制的 Python 子集,不能当作任意 Python 程序使用。

权限 含义 适用范围
R 读取单元格 可以通过表与列规则控制。
U 更新单元格 可以针对特定列允许有限修改。
C 创建行 在表级规则中处理,列规则没有此项。
D 删除行 在表级规则中处理,列规则没有此项。
S 修改文档表结构 仅在结构编辑特殊规则中设置。

把财务表限制给 Owner

在规则页点击 Add Table Rules,选择 Financials,创建这张表的规则组。新增条件:

user.Access != OWNER

把 R、U、C、D 全部设为拒绝,或从权限菜单选择 Deny all,然后保存。这样,非 Owner 的请求会在财务表规则处被拒绝,Owner 则继续由适用规则获得访问。

接下来可以把配送员工按 Editor 角色邀请到文档中。原文示例中,对方在侧栏里看不到 Financials,直接尝试打开它也会被拒绝。这里的关键是规则拒绝了数据访问,不只是让某个页面不显示。

如果每张表都要显式给 Owner 完整权限,可使用 seed rules。默认规则上方有一个快捷复选框,可在以后新建表规则组时自动加入 Owner 全权规则;展开 > 可以编辑种子规则。它用于减少重复配置,配置后仍应检查实际新建的规则组及其顺序。

限制 Financials 表的规则
限制 Financials 表的规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
被限制的 Financials 表从页面导航隐藏
被限制的 Financials 表从页面导航隐藏。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
默认 Owner 权限规则
默认 Owner 权限规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

先按个人限制列,再抽象成团队角色

配送人员 Kimberly 在示例中使用账户 kiwi@getgrist.com。假设她不需要看 Email 和记录包裹内容的 Piece 两列:先为 Orders 新增表规则组,点击组内三点菜单,选择 Add Column Rule,在 COLUMNS 的 [Add Column] 中选中这两列。

user.Email == 'kiwi@getgrist.com'

对这个条件关闭列规则中所有可用权限,也就是 R 与 U,然后保存。原文同样为采购人员 Charon 限制 Address 与 Phone。这里的邮箱是原文虚构业务示例,不代表已经邀请了真实用户。

人数增多后,逐个邮箱写规则难以维护。可以新建 Team 表,包含 Email 和 Role 两列,Role 使用 Sourcing、Delivery 两个选项。之后在访问规则中选择 Add User Attributes:

  1. 属性名称设为 Team,这是以后在条件里引用的名字。
  2. 来源表选择同名的 Team 表。
  3. 用户属性用 user.Email,匹配表中的 Email 列。
  4. 保存后,通过条件自动补全确认 user.Team 已可用。

现在 user.Team.Role 就能读取匹配行中的 Role,把个人规则推广为:

Orders 列集合 条件 限制
Email、Piece user.Team.Role == 'Delivery' 拒绝 R、U。
Address、Phone user.Team.Role == 'Sourcing' 拒绝 R、U。

新员工加入时,只需按共享流程授予文档访问,再在 Team 中维护对应邮箱与角色。原文通过 Charon 的视角确认采购人员看到的是预期列。

本文静态审查补充:Team 是授权依据,应保护它的写入、创建和删除权限。如果员工能修改自己的 Role、替换邮箱映射或新增另一条映射,就可能改变授权结果。至少对 Team 的非 Owner 用户拒绝 U、C、D;R 是否开放按业务需要决定。同时检查邮箱映射的唯一性、未匹配用户和空角色的结果。这是原教程角色表步骤之外应补齐的生产配置,不是声称原示例已验证这些情况。

按列设置访问规则
按列设置访问规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
列规则的完整条件
列规则的完整条件。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
按个人限制供应字段的规则
按个人限制供应字段的规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
Team 表中的邮箱和角色映射
Team 表中的邮箱和角色映射。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
添加基于 Team 表的用户属性
添加基于 Team 表的用户属性。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
按团队角色配置列规则
按团队角色配置列规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

按订单阶段控制可见的行

订单从采购阶段进入配送阶段,两组员工通常不必同时看到所有订单。在 Orders 中新增 Stage 列,使用 Sourcing 和 Delivery 等状态。然后通过三点菜单选择 Add table-wide rule。

原文采用先封闭、再开放所需访问的思路:给非 Owner 设置默认拒绝,并在它之前放置符合角色与阶段的读取规则。注意以下是整表规则组的自上而下顺序,不是随意排列的两个条件:

顺序 条件 R U/C/D
1 user.Team.Role == rec.Stage 允许 本条不设置,继续寻找后续决定。
2 user.Access != OWNER 拒绝 全部拒绝。
后续 Owner 的显式授权或适用默认规则 按对应规则 按对应规则。

rec 表示当前记录,可以读取本行字段。角色与订单阶段相同,则允许读取;否则非 Owner 落入拒绝规则。把第二条拒绝规则放在第一条之前,会使应开放的读取机会永远到不了,这也是为什么必须审查顺序。

如果 Owner 没有对应的 Team 记录,可把明确允许 Owner 的规则放在该组首位,避免先求值依赖 Team 的条件。这与前述 seed rules 的用途一致;仍需检查列级规则是否对 Owner 另有限制。

此时采购人员只看到采购阶段订单,配送人员只看到配送阶段订单,而且都只有读取权限;Owner 继续保留相应完整操作。前面列专属规则中的明确拒绝仍然先于整表读取规则判定,所以允许读一行并不自动允许读该行被限制的所有列。

订单 Stage 列
订单 Stage 列。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
按订单阶段设置表级规则
按订单阶段设置表级规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
Kiwi 可见的订单阶段
Kiwi 可见的订单阶段。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
Charon 可见的订单阶段
Charon 可见的订单阶段。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

访问条件里的引用是记录 ID

普通 Grist 公式支持沿引用继续取字段,例如 $Person.Email。访问条件中的 rec 并不支持直接沿引用取得其他记录,因此不能照搬 rec.Person.Email。在这些条件里,一个引用值通常是被引用记录的数值 ID。

假设 Orders.Purchaser 引用 Team,而 user.Team 是前面设置的用户属性记录。判断当前用户是不是采购人,可以比较:

rec.Purchaser == user.Team.id

左侧是引用记录 ID,右侧是用户属性记录的内置 id。如果 Orders 与 Team 都有指向 Departments 的 Department 列,则可比较:

rec.Department == user.Team.Department

两边都是同一目标表的记录 ID。若这样还不足以表达业务条件,可先在实际表里加辅助公式列,例如 Orders.Role 用 $Purchaser.Role 取到角色,再在规则里引用 rec.Role。这种辅助列同样要纳入可见性审查,不能把敏感数据通过公式列意外暴露出去。原页还提供了引用列访问规则视频作为延伸说明;本文不嵌入或运行视频。

只允许 Delivery 变成 Done

现在配送人员需要完成订单,但不应该任意修改 Stage。给 Orders 新增一条针对 Stage 的列规则,只把 U 设为允许,条件同时检查用户角色、变更前和变更后的状态:

(user.Team.Role == 'Delivery' and
  rec.Stage == 'Delivery' and
  newRec.Stage == 'Done')

rec 是变更前的记录,newRec 是拟议变更后的记录;newRec 可用于创建和更新时的条件。三项必须同时成立,才允许这次 Stage 更新。其他情况继续交给后面的限制规则处理。

原文用 Kiwi 的视角演示:从 Delivery 改成 Sourcing 被拒绝;改成 Done 则成功。变成 Done 后,这条记录从配送人员的视图消失,因为它已不再满足 user.Team.Role == rec.Stage 的读取条件。消失是读取规则产生的预期结果,不代表记录被删除。

测试时还应检查同一次操作是否试图改其他字段、改已完成的记录或创建新记录。只对 Stage 的 U 开放这一例外,不能被解释为授予整行任意更新、创建或删除权限。

仅允许 Delivery 到 Done 的更新条件
仅允许 Delivery 到 Done 的更新条件。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
不允许的阶段更新提示
不允许的阶段更新提示。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
允许的阶段更新
允许的阶段更新。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

特殊规则里最值得谨慎的是结构权限

默认规则下方有几项文档级特殊规则,每一项都有复选框以及可展开的详细条件。必要时可以按用户子集调整,但要理解它改变的是哪一种能力。

允许 Editor 修改结构。该选项恢复未启用规则时的结构编辑能力,以 S 表示。若没有任何表规则,且只有这一项恢复了默认行为,其效果相当于禁用访问规则。S 能创建或修改公式,而公式计算本身不受访问规则限制。掌握结构权限的人可能写公式读取文档中的其他数据,因此 S 可以成为绕过数据隔离的途径;限制敏感数据时,不能同时把它轻易交给受限协作者。

允许所有协作者查看访问规则。默认只有 Owner 能看规则;这个选项开放查看,不允许非 Owner 修改。不要把“能看配置”混同于“能改配置”。

限制非 Owner 完整复制或下载。只有允许非 Owner 查看规则后,相关选项才出现。完整副本包含规则,新副本的 Owner 可以看到它们,所以查看规则是完整复制的前提之一。即使某非 Owner 能读取全部数据,默认仍限制其复制或完整下载,需单独取消这项限制。没有全部数据读取权限的人,通常仍不能复制或下载整个文档。

模板复制例外。更深一层的展开区有特殊选项,允许受限用户复制或下载文档,用来演示带访问限制的非敏感模板。它的目的就是为了模板用途绕过读取限制,因此不适合敏感业务文档。原文还说明:用这个例外制作的副本不会继承该例外开关。

结构修改权限设置
结构修改权限设置。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
特殊规则选项
特殊规则选项。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

用链接密钥共享一个小范围的数据

有时只想把某一订单的信息通过链接交给对方。Grist 将 URL 中以单个下划线结尾的参数暴露给 user.LinkKey,取值时去掉参数名末尾的下划线。例如:

...?Token_=xx-xx-xx-xx&Flavor_=vanilla

条件中可读取 user.LinkKey.Token 与 user.LinkKey.Flavor,其值分别为示例中的代码和 vanilla。链接密钥只在网页客户端可用,不适用于 API。

要为每个订单生成难以猜测的标识,可以添加 UUID 列,先用 UUID() 公式生成值。UUID 不应随着公式重算不断改变:把公式列转换为数据列,冻结已有值,并保留触发公式,设为只应用于新记录。这样每条新订单生成一次标识。

再增加一个超链接列,通过 SELF_HYPERLINK() 把 UUID 放入 URL,原文还用 Ref 控制链接显示文字:

SELF_HYPERLINK(LinkKey_UUID=$UUID, label=$Ref)

将该列类型设置为 Text 并启用 HyperLink 显示。LinkKey_UUID 生成名为 UUID_ 的 URL 参数。UUID 与 Ref 列可以在界面中隐藏以保持整洁,但“隐藏列”本身不是访问控制,也不会让拿到链接的人失去使用密钥的能力。

订单的读取规则需要把 URL 中的值与记录中的 UUID 匹配。下面把原文描述整理成可审查的规则顺序;这是独立的链接分享场景,不应不加分析就叠加到前面的员工阶段规则上:

顺序 条件 权限
1 user.Access == OWNER Owner 的 R/U/C/D 全部允许。
2 user.LinkKey.UUID == rec.UUID 只允许读取相同 UUID 的记录,拒绝写入、创建、删除。
3 Everyone Else 全部拒绝。

官方延伸的 Link keys guide 明确指出,面向未受邀收件人的链接分享还需要在 Manage Users 中设置相应 Public Access。链接参数不会凭空让一个完全不可打开的文档变成可访问。该共享方式会改变文档入口权限,必须在完整规则检查后按业务需求决定;本文没有替任何文档开启公开访问。

本文补充边界:这类链接具有持有凭据即可使用的性质,不应该使用可预测的订单号来代替随机密钥。保证 UUID 非空且唯一,检查缺少、错误及被转发的密钥分别会发生什么,并保护 UUID 列的写权限。只要密钥仍有效,转发链接可能把相同的读取能力交给其他人;撤销时应改变对应授权依据或密钥,并重新验证。不能把 URL 里出现一个随机字符串当成完整的身份验证。

链接密钥还可以关联多表、多行,或参与用户属性表映射;相应数据可以呈现在表格、卡片、卡片列表、图表和自定义组件中。它改变的是数据访问范围,不局限于某一种界面组件。

生成 UUID 的公式列
生成 UUID 的公式列。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
把 UUID 公式列转换为数据列
把 UUID 公式列转换为数据列。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
固定为数据后的 UUID 列
固定为数据后的 UUID 列。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
按 UUID 构造共享链接
按 UUID 构造共享链接。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
删减为范围更小的共享链接
删减为范围更小的共享链接。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
链接密钥的原始规则顺序;与正文改写示例分开阅读
链接密钥的原始规则顺序;与正文改写示例分开阅读。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
使用链接密钥后的视图;这是独立共享场景
使用链接密钥后的视图;这是独立共享场景。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

条件变量、允许的运算和错误提示

官方文档列出以下常用 user 成员:

成员 含义
user.Access 文档的 OWNER、EDITOR 或 VIEWER 角色。
user.Email 用户邮箱;未登录用户为 anon@getgrist.com。
user.UserID 关联用户的数值 ID。
user.Name 显示名称,不可用时为 Anonymous;用户可自行修改名称,不宜把它当成稳定身份凭据。
user.LinkKey 访问控制 URL 参数,只在网页客户端可用。
user.SessionID 匿名用户在当前会话内的唯一字符串;已登录用户为字符串 "u" 加数值用户 ID。
user.IsLoggedIn 是否已登录的布尔值。

rec 给出当前行状态,使规则能够按记录决定可见性或修改权;newRec 给出创建、更新所提出的新状态。条件支持字符串、数字、列表和这些变量的成员访问,原页列出的运算符包括:

and  or  +  -  *  /  %
==  !=  <  <=  >  >=
is  is not  in  not in

不要因为语法看起来像 Python,就假定任意函数调用或跨表查找都可用。如果条件子集不足以表达需要的逻辑,可以把合适的计算放在表的公式列中,再在规则里使用结果,同时审查该辅助列及结构权限。

规则支持 # 或三引号形式的注释。导致操作被拒绝的规则中的第一条注释可作为拒绝原因提示。更直观的做法是点击条件右侧的 memo 图标,填写给用户看的说明并保存;当规则阻止操作时,说明会出现在通知里。错误提示应解释允许的业务动作,避免泄露对方无权知道的数据。原页以限制重复记录为例,并链接到对应指南。

规则旁的说明图标
规则旁的说明图标。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
带说明文字的访问规则
带说明文字的访问规则。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
复制被禁止时的错误提示
复制被禁止时的错误提示。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

用 View As 验证,别把预览当沙箱

Owner 可以从 View As 下拉菜单选择协作者,文档会按对方视角重新打开,并显示醒目标记。例如选择 Kiwi 后,应该看不到 Financials,也看不到 Email 与 Piece;在阶段规则生效后,只能看到配送阶段订单。

还应进入 Raw Data,检查实际暴露的表、列、行与预期一致。只检查某个页面隐藏了什么是不够的,因为协作者可能从其他入口访问同一数据。完成后点击绿色的 View as Yourself,返回本人视角。

View As 不是沙箱。Owner 并没有变成那个协作者;在预览中执行的修改仍会改动真实文档,且记录为 Owner 本人的操作。因此要验证写权限,宜先使用无敏感信息的测试副本或明确的测试记录。下面列的是本文建议的验收场景,不是本次已完成的测试结果:

场景 应检查的行为
配送人员 仅看配送阶段订单;看不到 Email、Piece 与 Financials;可把 Delivery 改为 Done,不能改为 Sourcing。
采购人员 仅看采购阶段订单;看不到 Address、Phone;不能使用配送完成的特例。
Owner 所需表、列和维护操作均可用,避免规则顺序意外锁住管理流程。
未匹配 Team 的用户 确认不因角色为空、映射重复或规则错误意外得到权限。
链接分享 正确密钥只显示目标数据;缺失、错误密钥被拒绝;检查其他表和 Raw Data。
越权入口 受限协作者不能修改 Team、UUID 授权字段、公式或结构,也不能借完整复制取得全部数据。

把“能做的事”和“不能做的事”都验证一遍,才能确认业务权限真正落到规则里。每次变更后先保存,再重新以相关角色检查;不要把本篇静态推演替代目标文档上的实际验证。

从规则界面进入 View As
从规则界面进入 View As。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
以 Kiwi 身份预览订单
以 Kiwi 身份预览订单。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
以 Kiwi 身份查看原始数据
以 Kiwi 身份查看原始数据。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图
以 Charon 身份预览订单
以 Charon 身份预览订单。Grist 官方教程原图,界面中的人员、订单和密钥均为原文示例数据;原文图像,并非本次运行结果。原图

原文中的延伸示例

官方指南还收集了完整模板与案例:Lead list 将线索分配给个人并由 Owner 管理分配;Account-based Sales Team 区分销售代表与经理的数据范围;Public Giveaway 面向未登录参与者执行领取规则;Simple Poll 限制每位访客一次回应;Crowdsourced List 区分版主与普通贡献者;Time Sheets 让承包商查看历史工时、只编辑当前月份;Project Management 按部门与管理职责扩展权限。本文保留这些原文参考入口,没有复制、登录或修改任何模板。

来源与改写说明

原文:Grist Help Center — Access rules,Grist 官方帮助文档,未见个人署名和首次发布日期。本文用文字、规则表和自绘技术图重新呈现原文操作,保留公式与限制;补充了 Team 与 UUID 写权限保护、缺失映射检查、链接转发边界和验证矩阵。公开链接入口的前提另以官方 Link keys guide 核对。

来源为 Grist 官方帮助文档;原文与原图归 Grist 及相应权利人所有。软件开源许可证不自动等同于帮助文档转载许可。正文所有权限公式仅静态审查,没有宣称目标文档通过运行验证。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容