教程:使用 Metabase 中的集合权限
设置带有权限的集合,以帮助人们组织和共享与他们相关的工作。
正在查找有关集合权限的文档?请参阅 文档:集合权限。
集合可以使问题、仪表板和模型保持有条理且易于查找。将集合视为存储我们工作的文件夹很有帮助。集合权限授予人群访问权限,以便
- 查看或编辑保存在集合中的问题、仪表板或模型。
- 编辑集合详情,例如集合的名称或其保存位置。
在本教程中,我们将为一家拥有 Canoes 和 Sailboats 两个团队的公司创建集合,并设置集合权限,以便
- 公司里的每个人都可以查看,但不能编辑保存在公司顶层集合中的工作(在 Metabase 中,这称为 **我们的分析**—您可以将其视为根目录或父文件夹)。
- Canoes 团队的成员将能够保存、查看和编辑在 Canoes 集合中共享的团队成员之间的工作。Sailboats 团队将获得对其自己的 Sailboats 集合的访问权限。
- Canoes 团队将获得对保存在 Sailboats 集合中的工作的只读访问权限。Sailboats 团队将获得对 Canoes 集合的只读访问权限。
查看默认集合权限
在全新的 Metabase 中
- 点击 **齿轮图标** 并选择 **管理员设置** > **权限** > **集合**。
- 点击 **我们的分析** 以转到根集合的集合权限页面。
在 **我们的分析的权限** 页面上,您会发现默认组管理员和所有用户的 **集合访问权限** 设置为 **管理**。
所有用户包括添加到您的 Metabase 中的每个人,而 **管理** 权限允许一个组查看和编辑一个集合。因此,Metabase 的默认集合权限将允许 Boats 的每个人查看和编辑保存在 **我们的分析** 中的工作。
配置“我们的分析”的权限
我们将撤销对 **我们的分析** 的访问权限,因为 Metabase 会授予某人所属的所有组中最宽松的访问级别。
您无法将用户从“所有用户”组中删除,因此如果您为“所有用户”授予对 **我们的分析** 的 **管理** 权限,那么无论您将用户放入任何其他组,这始终是使用您的 Metabase 的每个人的最宽松设置。
- 转到 **管理员设置** > **权限** > **集合** > **我们的分析**。
- 点击 **所有用户** 行和 **集合访问权限** 列中的下拉菜单。
- 选择 **无访问权限**。切换 **也更改子集合**,以便这些权限适用于嵌套在 **我们的分析** 下的所有子集合。

创建新组和集合
接下来,我们将创建与我们的 Canoes 和 Sailboats 团队匹配的组。转到 **管理员设置** > **用户** > **组** > 创建组,并将组命名为“Canoes”。
要创建新集合,我们将转到 Metabase 主页,然后点击 **+ 新建** > **集合**。我们将创建两个以我们的新组命名的集合,并将每个集合保存在 **我们的分析** 中。
设置集合权限
我们将首先为 Canoes 集合设置集合权限,以便
- Canoes 组可以查看和编辑保存在 Canoes 集合中的问题、仪表板和模型。
- Canoes 组可以移动、重命名或存档 Canoes 集合。
- Sailboats 组只能查看保存在 Canoes 集合中的工作。
您可以导航回 **管理员设置** 并转到每个集合的集合权限页面,或者您可以直接从 Metabase 主页设置权限。
- 在侧边栏中点击 Canoes 集合。
- 点击 **锁形图标** 打开集合权限模态框。
- 在 **Canoes** 行和 **集合访问权限** 列的下拉菜单中选择 **管理**。
- 在 **Sailboats** 行和 **集合访问权限** 列的下拉菜单中选择 **查看**。
- 点击保存。

要为 **Sailboats** 集合设置权限,以便 Sailboats 组具有 **管理** 访问权限,而 Canoes 组具有只读访问权限
- 在侧边栏中点击 **Sailboats** 集合。
- 点击 **锁形图标** 打开集合权限模态框。
- 在 **Sailboats** 行和 **集合访问权限** 列的下拉菜单中选择 **管理**。
- 在 **Canoes** 行和 **集合访问权限** 列的下拉菜单中选择 **查看**。
- 点击保存。
集合权限如何与数据权限交互
| 集合权限 | 数据权限 |
|---|---|
| 查看保存在给定集合中的问题、仪表板或模型 *结果*。 | *查看和查询* 问题、仪表板或模型使用的底层表。 |
假设我们的 Canoes 组有两组权限
- **管理** Canoes 集合的集合权限;
- **可查看** `Orders` 表的数据权限;
如果 Canoes 集合包含一个使用 `Orders` 表创建的问题,以下是您可以预期的每种权限允许 Canoes 组执行的操作
| **管理** Canoes 集合 | **可查看** `Orders` 的权限 |
|---|---|
| 编辑问题标题或描述。 | 查看问题的可视化(“结果”)。 |
| 将问题移动或复制到另一个集合。 | 更改问题返回的现有结果的可视化类型。 |
本质上,Canoes 组将能够与保存在其集合中的问题进行交互,但他们无法查询 `Orders` 表中的任何其他数据(无论是通过问题还是数据浏览器)。

要允许用户创建和编辑问题,您可以将 Canoes 组对 `Orders` 表的 **创建查询** 权限设置为 **仅查询生成器**。然后 Canoes 将能够
- 使用查询生成器更改问题使用的查询。
- 筛选或汇总 `Orders` 表中的数据以更新问题返回的结果。
- 从问题名称下方的链接查看 `Orders` 表。

权限如何应用于包含来自不同集合的问题的仪表板
假设 Canoes 组已更新权限集
- **管理** Canoes 集合的集合权限。
- **无访问权限** 的 Sailboats 集合的集合权限。
- **可查看** `Orders` 表的数据权限。
如果仪表板上的所有问题也保存在 Canoes 集合中,Canoes 组将看到所有卡片

如果仪表板上的一个问题保存在 Sailboats 集合中(即使该问题使用 `Orders` 表),Canoes 组将看到一个“已锁定”的卡片

由于非管理员不了解组或权限,“已锁定”的卡片会在拥有更广泛权限的人尝试与拥有更严格权限的人共享他们的工作时发生。
例如,假设 Pirate Ships 组拥有帮助他们从 Canoes 和 Sailboats 集合中获取内容的权限。如果 Pirate Ships 组构建了一个仪表板并与其 Canoes 组的成员共享,Canoes 组的成员将看到任何仍保存在 Sailboats 集合中的问题的“已锁定”卡片。
为避免“已锁定”的卡片,我们建议将问题复制到您打算保存仪表板的集合中。