SQL 代码段文件夹权限

SQL 代码段控件仅在 ProEnterprise 计划(自托管和 Metabase Cloud)中可用。

本文介绍SQL 代码段文件夹,您可以使用它来组织和设置 SQL 代码段 的权限。

文件夹权限不应被视为安全功能,而是一种有助于组织和标准化代码段的功能。虽然文件夹与集合是截然不同的,但它们都服务于组织功能:集合收集仪表盘和问题并授予权限;文件夹收集代码段并授予权限。有关更多信息,请参阅下文关于权限的讨论

文件夹

文件夹的工作方式类似于文件系统。您可以将代码段添加到文件夹,并将文件夹放在其他文件夹内。您可以嵌套任意数量的文件夹,只要您的 Metabase 实例可以处理或物理定律允许(以先到者为准)。

顶层文件夹是代码段侧边栏的默认文件夹。它是包含所有文件夹和代码段的根文件夹。

创建新的 SQL 代码段文件夹

您可以从 SQL 编辑器 中的代码段菜单创建 SQL 代码段文件夹。

Create new snippet folder

  1. 单击代码段菜单图标(代码段图标看起来像一块文本或代码,带有三条不均匀的水平线)。
  2. 单击 + 图标并选择新建文件夹
  3. 为您的文件夹命名,并可选择添加描述和/或将文件夹放在现有文件夹中(应放入的文件夹选项)。

Create new folder modal

创建新的 SQL 代码段

某些计划中,创建 SQL 代码段时,您还会看到一个额外的选项,用于将该代码段添加到现有文件夹(应放入的文件夹选项)。

Add a snippet enterprise modal

默认位置是顶层文件夹,它是所有代码段和文件夹的根文件夹。您可以随时将代码段添加到文件夹(或将代码段重新定位到另一个文件夹,前提是您对这两个文件夹都具有编辑权限)。

请注意,代码段名称必须唯一;文件夹不影响此要求。

权限

管理员(且仅限管理员)可以通过将代码段放入文件夹中来设置代码段的可见性和可编辑性,然后授予组对这些文件夹的三个权限级别之一。如果您熟悉集合权限,则功能类似。有关集合和文件夹权限如何协同工作的更多信息,请参阅下文文件夹权限如何工作

更改文件夹的权限

管理员可以通过单击文件夹旁边的省略号 () 并选择更改权限来设置文件夹的权限。

您还可以通过将鼠标悬停在代码段侧边栏的顶部,单击 + 左侧的省略号 () 并选择更改权限来更改当前选定的文件夹。在顶层文件夹时,选择侧边栏顶部的 将使管理员可以选择设置所有代码段、文件夹和子文件夹的权限。

在更改具有子文件夹的文件夹的权限时,您可以选择通过切换同时更改子文件夹设置将这些权限扩展到该文件夹的子文件夹。

文件夹权限的选项

Change permissions

有三个选项可用于更改代码段文件夹权限

  • 编辑访问权限(绿色复选标记图标)。默认设置。创建文件夹后,所有用户(至少对一个数据库具有 SQL 编辑器权限的用户)都可以查看、编辑和存档或取消存档文件夹的代码段。
  • 查看访问权限(黄色眼睛图标)。具有查看访问权限的组中的用户可以查看文件夹中的代码段,但不能编辑或存档/取消存档它们。当然,他们可以复制代码段代码并创建新的代码段,这对现有代码段没有影响。
  • 撤销访问权限(红色 X 图标)。对于没有代码段文件夹的编辑或查看权限的组中的用户,侧边栏中不会显示该文件夹的代码段,并且该文件夹中的任何代码段都不会出现在这些用户的类型提前建议中。请注意,如果用户可以访问包含他们没有权限的代码段的问题,他们仍然可以从该问题中获得结果。请参阅下文关于文件夹权限如何工作的讨论。

存档不影响权限

存档或取消存档代码段不会影响代码段的权限。例如,如果只有一个组(例如会计组)对文件夹具有编辑权限,则只有会计组中的人员(和管理员)能够存档和取消存档该文件夹中的代码段,因为存档和取消存档被视为编辑代码段。

文件夹权限如何工作

与集合权限一样,文件夹权限是累加的,这意味着更宽松的访问权限将覆盖不太宽松的访问权限。有关更详细的讨论,请参阅设置权限

但是,代码段文件夹权限需要付出更多努力来解开,因为代码段文件夹的权限必须与数据和集合的权限协同工作。

以下是基本规则:数据比代码更敏感,因此应用于数据的权限将优先于应用于代码的权限。让我们通过一个示例来说明这在实践中是如何工作的。

权限示例

考虑以下场景(以及一个值得慢读的句子):一个组可能对一个集合具有权限,该集合包含一个问题,该问题使用一个代码段,该代码段位于该组没有权限的文件夹中。换句话说:该组中的人员有权运行集合中的问题,但他们无权访问包含集合问题之一中使用的代码段的文件夹。在这种情况下,Metabase 将如何解决权限问题?

分为三部分

  1. 该组中的人员可以运行问题并获得结果。他们有权查看该数据(问题结果),因此他们应该能够查看该数据。该组对集合的权限优先于对文件夹(代码段代码)的权限。
  2. 代码段不会显示在代码段侧边栏中。但是,仅仅因为该组中的人员可以毫无问题地运行问题,他们仍然没有代码段文件夹的权限,因此他们将无法在代码段侧边栏中查看或编辑该代码段(或代码段的文件夹)。
  3. 具有 SQL 查询访问权限的用户仍然可以运行代码段(如果他们知道其名称),无论他们是否具有代码段文件夹的权限。他们将无法查看或编辑代码段,但如果他们知道其名称,则可以将其包含在查询中,例如,{{snippet: Example snippet I don't have permissions to but can still use }}

由于代码段文件夹权限的工作方式,我们建议您将代码段文件夹权限视为代码段组织的附加工具,而不是作为阻止访问这些代码段包含的 SQL 代码的方法。使用文件夹权限,通过向团队公开与其分析领域相关的文件夹来保持代码段侧边栏的整洁,并将关键代码段的编辑权限限制在您的组织中,以保持重要的 SQL 代码准确且免受未经审查的编辑引入的错误的影响。

延伸阅读

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