从旧权限迁移

在 Metabase 56 中,我们将“数据沙盒”重命名为“行和列安全”。功能保持不变。有些人觉得“数据沙盒”这个术语令人困惑,所以我们将其更名为更符合行业标准的“行和列安全”。

在 Metabase 50 中,我们彻底改革了数据权限系统,使其更具表达力且更易于理解。本页面将解释发生了什么变化以及为什么。

简而言之:我们将旧的“数据访问”设置拆分为两个设置:“查看数据”和“创建查询”。您的数据权限可能看起来有所不同,但访问权限没有改变。

Metabase 如何迁移您的权限

如果您是从 Metabase 50 或更早版本迁移,Metabase 将(除了一个例外)自动更新您的权限至新系统。虽然组权限会略有不同(并且我们希望更容易理解),但您的组将拥有与以前相同的访问级别。

我们为什么要更新权限系统

原始的“数据访问”权限设置包含五个级别的访问:无限制、模拟、细粒度、无自助服务和阻止。这些级别不在同一轴上。它们在一个轴上组合,即您是否可以查看数据,以及在另一个轴上,您是否可以查询该数据。这创建了一个二维设置

  • 无自助服务。 限制组使用查询生成器创建或编辑问题。
  • 沙盒和阻止。 限制对底层数据的查看查询生成器访问。

将两个轴(查询+查看)混合到一个权限设置中可能会导致意外行为。例如,通过将访问权限从“沙盒”更改为“无自助服务”,管理员可能会认为他们正在限制该组对数据的访问。但在这种情况下,如果该组还拥有对具有现有模型、问题或仪表板的集合的访问权限,则该组可能会看到更多数据。

我们对数据权限的全面改进实现了什么

  • 查看访问查询访问拆分为两个权限维度。这种拆分允许管理员,例如,无论是否具有查询生成器访问权限,都可以对表进行沙盒处理(以前无法将沙盒配置为仅查看)。
  • 使权限更容易理解。更严格的权限永远不会比不太严格的权限提供更多访问权限。

从旧权限到新权限的迁移表

此表仅供您从考古学的角度了解 Metabase。Metabase 会为您处理迁移。

以前,Metabase 有“数据访问”和“原生查询编辑”。现在,Metabase 有查看数据创建查询。Metabase 如何将每个配对迁移到新系统。

数据访问 原生查询编辑 > 查看数据 创建查询
无限制 > 可以查看 查询生成器和原生代码
无限制 > 可以查看 查询构建器
无自助服务 > 可以查看
阻止 > 阻止
模拟 > 模拟 查询生成器和原生代码
模拟 > 模拟 查询构建器
无限制(细粒度) > 可以查看 查询生成器(细粒度)
沙盒(细粒度) > 行和列安全(细粒度) 查询生成器(细粒度)
无自助服务(细粒度) > 可以查看 否(细粒度)

无自助服务(已弃用)”查看访问级别

如果您的某个组在“查看数据”中看到“无自助服务(已弃用)”权限设置,您应该在某个时候手动更改它。

对于任何将“查看数据”访问权限设置为“无自助服务(已弃用)”的组,您需要将“查看数据”权限更改为新的选项之一

如果您不采取任何措施,Metabase 将在未来的版本中将任何将“查看数据”访问权限设置为“无自助服务(已弃用)”的组更改为“阻止”。我们默认设置为“阻止”,这是最不具限制性的“查看数据”访问权限,以防止任何意外的数据访问。但这种更改为“阻止”可能会导致用户失去他们以前拥有访问权限的数据。

我们为什么无法手动迁移此设置

在旧的权限系统中,考虑了多个组的成员。

  • 无限制的数据访问意味着您其他组中的阻止、沙盒或模拟不会影响您。
  • 无自助服务数据访问意味着您其他组中的阻止、沙盒或模拟影响您。

假设您在旧权限框架中有以下组

  组 A 组 B 组 C 组 D 组 E
数据访问 无限制 无自助服务 阻止 沙盒 模拟

如果您是组 A 和组 C、D 或 E 的成员,您将拥有对数据的完全、无限制的访问权限,不会应用任何阻止、沙盒或模拟。

如果您是组 B 和组 C、D 或 E 的成员,您将对数据有有限的访问权限:阻止、沙盒或模拟。

我们可以这样迁移权限

  组 A 组 B 组 C 组 D 组 E
查看数据 可以查看 ? 阻止 行和列安全 模拟
创建查询 仅查询生成器 仅查询生成器 仅查询生成器

我们无法确定组 B 的“查看数据”应该是什么。如果我们将其切换为可以查看,则该用户不会受到其其他组中“阻止”、“行和列安全”或“模拟”设置的影响。如果我们将其设置为阻止,他们可能会失去您认为他们应该拥有访问权限的数据。因此,我们创建了一个中间设置,无自助服务(旧版)来管理这种(临时的)尴尬的过渡。

对于一些具有“无自助服务”和“沙盒”数据访问权限的组的权限设置,您可能需要创建一个新组来复制 50 或更高版本中的设置

在 Metabase 49 中,“无自助服务”(更具限制性)数据访问无法覆盖“沙盒”(更具限制性)访问,您可以以一种难以理解的方式设置 Metabase 49。

从 Metabase 50 开始的新权限系统中,更具限制性的设置*始终*会覆盖不具限制性的设置。这种一致的行为使权限更容易理解。然而,这个改进的一个后果是,在升级到 Metabase 50 时要重现某些权限设置,您可能需要创建一个*额外的*组。

例如,假设您在 Metabase 49 中有两个旧数据访问权限设置下的组,“所有用户”组和“Foo”组。

49 中的权限设置

  • “所有用户”组对“示例数据库”中的所有表具有“无自助服务”数据访问权限。
  • “Foo”组对“示例数据库”中的表具有“沙盒”访问权限。

49 中的此数据访问设置允许用户查看他们有权访问的集合中的问题和仪表板。然而,“Foo”组中的用户将获得项目的沙盒视图。在这种情况下,“Foo”组中限制性更强的“沙盒”数据访问覆盖了“所有用户”组中更具限制性的“无自助服务”。

但是,从 Metabase 50 开始,更具限制性的设置*始终*会覆盖不具限制性的设置。因此,为了保持 Foo 的沙盒完整性,我们需要将“所有用户”组的“查看数据”权限设置设置为*不具限制性*于“沙盒”设置。因此,我们需要将“所有用户”的“查看数据”权限设置为“阻止”。

但是,如果您仍然希望 Foo 组以外的所有其他人能够查看他们有权访问的集合中的项目,您需要创建一个额外的组 Bar,其中包含“所有用户”组中的所有人(但不包括 Foo 组中的人),并将 Bar 组授予“示例数据库”的“可以查看”访问权限。Bar 组的“可以查看”访问权限将覆盖“所有用户”组的“阻止”设置,他们将能够查看问题和仪表板。与此同时,Foo 组仍然拥有其沙盒。以下是 50 中所需的设置摘要

50 中的权限设置

  • “所有用户”组对“示例数据库”中的所有表都设置为“阻止”。
  • “Foo”组对“示例数据库”中的所有表都具有“行和列安全”的“查看数据”权限。
  • 创建一个新组,Bar,该组包含“所有用户”组中的所有人,但不包括 Foo 组中的人。将此 Bar 组的“示例数据库”的“查看数据”权限设置为“可以查看”。

延伸阅读

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档?提出更改。
© . This site is unofficial and not affiliated with Metabase, Inc.