数据权限指南

了解 Metabase 如何通过在 Metabase 附带的示例数据库上设置权限来处理数据权限。

数据权限指定不同人群组如何与表格和数据库交互。

对于每个数据库、架构和表格,您可以指定

  • 谁可以看到问题的结果;
  • 谁可以创建新问题(以及如何创建);
  • 谁可以下载结果;
  • 谁可以编辑元数据。

在本文中,我们将逐步介绍一个示例,说明如何授予人们查看问题结果的权限,并根据示例数据库中的表格创建新问题。

数据权限简介

让我们首先导航到管理 > 权限,然后选择数据库 > 示例数据库。这将带我们进入数据库级别的数据权限页面。如果要配置示例数据库中每个表格的权限,可以单击左侧的表格名称。

The data permissions page for the Sample Database before any changes are made.

数据权限必须为组配置。 Metabase 带有两个默认组:管理员和所有用户。我们将创建两个新的示例组,分别名为“独木舟”和“帆船”,并设置数据权限以

  • 调整所有用户的默认权限设置:默认情况下,所有用户都无法创建新问题
  • 授予“独木舟”组基于 Orders 表仅在查询构建器中创建问题的权限。
  • 授予“帆船”组基于 PeopleProducts 表仅在查询构建器中创建问题的权限。

为“所有用户”组配置查询权限

首先,我们将确认“所有用户”对数据库的创建查询权限,因为 Metabase 授予某人所属的所有组中最宽松的访问级别。

您无法从“所有用户”组中删除任何人,因此,如果您为“所有用户”授予示例数据库的查询构建器和原生权限,那么对于使用 Metabase 的每个人来说,这始终是最宽松的设置,而与您将人员放入的任何其他组无关。

  1. 转到管理 > 权限 > 数据库 > 示例数据库
  2. 单击所有用户行和创建查询列的下拉菜单。
  3. 确认它设置为(或将其设置为“否”)。
  4. 单击顶部出现的横幅中的保存更改

Selecting the No query permissions for the All Users group to the Sample Database.

为“所有用户”选择示例数据库将

  • 阻止“所有用户”在数据浏览器中看到示例数据库中的任何数据。

  • 阻止“所有用户”从示例数据库中的数据创建问题(同时使用查询构建器和 SQL)。

为“所有用户”组配置查看数据权限

“所有用户”组在示例数据库上将查看数据设置为“可以查看”权限。“可以查看”意味着“所有用户”将能够查看结果,以查看与您的“所有用户”组的集合权限匹配的集合中的问题和仪表盘。如果您撤销了查询权限,“所有用户”将无法查看底层数据。

我们将保持这些权限不变。

创建用户组

让我们创建两个新组,分别命名为“独木舟”和“帆船”。

  1. 转到管理 > 人员
  2. 选择组选项卡
  3. 单击创建组并将其命名为“独木舟”。

重复创建组“帆船”。有关更多详细信息,请参见创建组

查看默认数据权限

转到管理 > 权限 > 数据库,然后选择示例数据库以查看我们的新组

The data permissions page with our newly added Canoes and Sailboats groups.

新组默认设置为创建查询的权限,因为“所有用户”具有权限。这使我们可以有选择地向每个组添加权限。

对于“独木舟”和“帆船”组,我们希望

  • 阻止“独木舟”和“帆船”组中的人员在数据浏览器中查看任何示例数据库表格。

  • 阻止“独木舟”和“帆船”组中的人员使用查询构建器基于示例数据库表格创建问题。

  • 继续允许“独木舟”和“帆船”组中的人员查看基于示例数据库表格构建的问题的结果,前提是这些问题保存在与给定组的集合权限匹配的集合中。

为用户组配置查询权限

要授予“独木舟”组仅基于 Orders 表在查询构建器中创建问题的权限

  1. 转到管理 > 权限 >
  2. 选择独木舟组。
  3. 单击示例数据库
  4. 创建查询列的订单行中,从下拉菜单中选择仅查询构建器
  5. 单击保存更改
  6. 在出现的模式对话框中,查看权限更改的效果:“独木舟”组将具有示例数据库的精细查询创建权限。单击更改以确认。

Granting the Canoes group permission to access the Orders table.

您会注意到,您只能在表格上选择仅查询构建器权限,而不能选择查询构建器和原生。如果要允许人们创建原生查询(例如,在 SQL 中),则需要在数据库级别而不是表格级别指定它。 Metabase 不会解析您的 SQL,因此它不会知道查询中使用了哪些表格,因此它无法限制对特定表格的访问。

如果您返回“独木舟”组的“示例数据库”权限,您将被带到组级别的数据权限页面。从那里,您将看到 Metabase 在“示例数据库”的创建查询列下自动填充黄色精细权限。 精细权限表示“独木舟”组现在有权访问示例数据库中的某些表格,但并非所有表格。

The Canoes group now has granular access to the Sample Database.

让我们为“帆船”组配置另一组数据权限,以授予“帆船”组对示例数据库中 PeopleProducts 表格的仅查询构建器权限

The data permissions page after the Sailboats group has been granted access to the People and Products tables.

以下是我们当前数据权限的作用

表格的查看数据

组 \ 表格 所有用户 独木舟 帆船
订单
人员
产品

基于表格在查询构建器中创建查询

表格 \ 组 所有用户 独木舟 帆船
订单
人员
产品

为多个组中的用户配置权限

假设 Captain 先生同时属于“独木舟”组和“帆船”组。

他有三组创建查询权限,这些权限来自三个不同的组

  • 来自“所有用户”组的示例数据库的查询权限。
  • 来自“独木舟”组的 Orders 表格的仅查询构建器权限。
  • 来自“帆船”组的 PeopleProducts 表格的仅查询构建器权限。

由于 Metabase 在所有组中应用最宽松的设置,因此 Captain 先生将对 OrdersPeopleProducts 表格具有“创建查询:仅查询构建器”权限。对这三个表格的“仅查询构建器”权限意味着 Captain 先生将能够

  • 数据浏览器中查看 OrdersPeopleProducts 表格
  • 使用 OrdersPeopleProducts 的任意组合在查询构建器中创建问题。
  • 向下钻取和操作其他人的查询构建器问题,这些问题使用 OrdersPeopleProducts,只要这些问题保存在与他的集合权限匹配的集合中。

Captain 先生不属于任何对 Reviews 表格或示例数据库具有“创建查询”权限的组,这将

  • 阻止他使用 Reviews 表格创建问题。
  • 阻止他完全与原生查询编辑器进行交互(例如,查看、编辑或编写 SQL 查询)。

由于 Captain 先生也是“所有用户”组的成员,并且具有示例数据库的可以查看权限,因此他仍然能够查看使用 Reviews 表格或原生查询编辑器构建的问题的结果,只要他具有正确的集合权限。

更多数据权限选项

* 仅在Pro 和企业版计划中可用。

进一步阅读

下一步:使用集合权限

设置具有权限的集合,以帮助人们组织和共享与其相关的工作。

下一篇文章