数据权限指南
通过设置 Metabase 自带的示例数据库权限,了解 Metabase 如何处理数据权限。
数据权限指定了不同的用户组如何与表格和数据库进行交互。
对于每个数据库、模式和表格,您可以指定
- 谁可以查看问题的结果;
- 谁可以创建新问题(以及如何创建);
- 谁可以下载结果;
- 谁可以编辑元数据。
本文将通过一个示例,演示如何授予用户查看问题结果以及基于示例数据库中的表格创建新问题的权限。
数据权限简介
首先,导航至管理 > 权限,然后选择数据库 > 示例数据库。这将带您进入数据库级别的数据权限页面。如果您想为示例数据库中的每个表格配置权限,可以点击左侧的表格名称。
数据权限必须为用户组配置。Metabase 默认提供两个用户组:管理员和所有用户。我们将创建两个新的示例用户组,分别命名为“独木舟”和“帆船”,并设置数据权限,以实现以下目标:
- 调整“所有用户”组的默认权限设置:默认情况下,所有用户都无法创建新问题
- 授予“独木舟”组权限,仅基于
Orders
表在查询构建器中创建问题。 - 授予“帆船”组权限,仅基于
People
和Products
表在查询构建器中创建问题。
配置“所有用户”组的查询权限
首先,我们将确认“所有用户”组对数据库的创建查询权限,因为 Metabase 会授予用户所属所有组中最宽松的访问级别。
您无法将任何人从“所有用户”组中移除,因此,如果您授予“所有用户”组对示例数据库的查询构建器和原生权限,那么这将始终是所有 Metabase 用户最宽松的设置,无论他们属于其他任何组。
- 导航至管理 > 权限 > 数据库 > 示例数据库。
- 点击所有用户行和创建查询列中的下拉菜单。
- 确认其设置为否(或将其设置为“否”)。
- 点击顶部出现的横幅中的保存更改。
将“所有用户”对示例数据库的权限设置为否将:
-
阻止“所有用户”在数据浏览器中看到示例数据库的任何数据。
-
阻止“所有用户”根据示例数据库的数据创建问题(无论是使用查询构建器还是 SQL)。
配置“所有用户”组的查看数据权限
“所有用户”组对示例数据库的查看数据权限设置为“可查看”。“可查看”意味着“所有用户”将能够查看集合中与“所有用户”组的集合权限匹配的问题和仪表盘的结果。如果您撤销了查询权限,“所有用户”将无法看到底层数据。
我们将保持这些权限不变。
创建用户组
让我们创建两个新组,分别命名为“独木舟”和“帆船”。
- 导航至管理 > 人员。
- 选择用户组选项卡。
- 点击创建用户组并命名为“独木舟”。
重复此操作,创建名为“帆船”的用户组。更多详细信息,请参阅创建用户组。
审查默认数据权限
导航至管理 > 权限 > 数据库,然后选择示例数据库以查看我们新创建的用户组
新用户组默认没有创建查询的权限,因为“所有用户”组也没有此权限。这使我们能够有选择地为每个用户组添加权限。
对于“独木舟”和“帆船”组,我们希望:
-
阻止“独木舟”和“帆船”组中的人员在数据浏览器中查看任何示例数据库表格。
-
阻止“独木舟”和“帆船”组中的人员使用查询构建器在示例数据库表格上创建问题。
-
继续允许“独木舟”和“帆船”组中的人员查看基于示例数据库表格构建的问题结果,只要这些问题保存在与给定组的集合权限匹配的集合中。
配置用户组的查询权限
要授予“独木舟”组权限,使其仅能基于 Orders
表在查询构建器中创建问题
- 导航至管理 > 权限 > 用户组。
- 选择独木舟用户组。
- 点击示例数据库。
- 在Orders行和创建查询列中,从下拉菜单中选择仅限查询构建器。
- 点击保存更改。
- 在弹出的模态框中,审查您的权限更改的影响:“独木舟”组将对示例数据库拥有细粒度的查询创建权限。点击更改以确认。
您会注意到,您只能为表格选择仅限查询构建器权限,而不能选择查询构建器和原生权限。如果您想允许用户创建原生查询(例如,使用 SQL),您需要在数据库级别而非表格级别指定。Metabase 不会解析您的 SQL,因此它不知道查询中使用了哪些表格,也无法限制对特定表格的访问。
如果您返回到“独木舟”组的示例数据库权限页面,您将看到组级别的数据权限页面。在那里,您会看到 Metabase 在示例数据库的创建查询列下自动填充了黄色的细粒度权限。“细粒度”权限表示“独木舟”组现在可以访问示例数据库中的部分而非全部表格。
让我们为“帆船”组配置另一组数据权限,授予“帆船”组对示例数据库中的 People
和 Products
表格的仅限查询构建器权限
这是我们当前的数据权限功能:
表格的查看数据权限
用户组 \ 表格 | 所有用户 | 独木舟 | 帆船 |
---|---|---|---|
订单 | |||
人员 | |||
产品 |
基于表格在查询构建器中创建查询
表格 \ 用户组 | 所有用户 | 独木舟 | 帆船 |
---|---|---|---|
订单 | |||
人员 | |||
产品 |
配置一个用户在多个组中的权限
假设 Captain 先生同时属于“独木舟”和“帆船”组。
他有三组创建查询权限,这些权限来自三个不同的组:
- 来自“所有用户”组对示例数据库的无查询权限。
- 来自“独木舟”组对
Orders
表的仅限查询构建器权限。 - 来自“帆船”组对
People
和Products
表的仅限查询构建器权限。
由于 Metabase 采用所有组中最宽松的设置,Captain 先生将对 Orders
、People
和 Products
表拥有“创建查询:仅限查询构建器”的权限。对这三个表的“仅限查询构建器”权限意味着 Captain 先生将能够:
- 在数据浏览器中查看
Orders
、People
和Products
表 - 在查询构建器中使用
Orders
、People
或Products
的任意组合来创建问题。 - 下钻和操作其他用户使用
Orders
、People
或Products
创建的查询构建器问题,只要这些问题保存在与他的集合权限匹配的集合中。
Captain 先生不属于任何对 Reviews
表或示例数据库具有创建查询权限的组,因此他将:
- 无法使用
Reviews
表创建问题。 - 完全无法与原生查询编辑器交互(例如,查看、编辑或编写 SQL 查询)。
由于 Captain 先生也属于“所有用户”组,并对示例数据库拥有可查看权限,因此只要他拥有正确的集合权限,他仍然能够查看使用 Reviews
表或原生查询编辑器构建的问题结果。
更多数据权限选项
* 仅适用于 Pro 和 Enterprise 计划。
延伸阅读
下一步:使用集合权限
设置带有权限的集合,以帮助人们组织和分享与他们相关的工作。