从旧版权限迁移

在 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.