代码片段文件夹权限
代码片段控件仅在 Pro 和 Enterprise 计划(包括自托管和 Metabase Cloud)中可用。
本文档涵盖了代码片段文件夹,可用于组织和设置代码片段的权限。
文件夹权限不应被视为安全功能,而应被视为有助于组织和标准化代码片段的功能。尽管文件夹与集合是独立的,但它们都起到了组织作用:集合收集并设置仪表板和问题的权限;文件夹收集并设置代码片段的权限。有关更多信息,请参阅下文关于权限的讨论。
文件夹
文件夹的工作方式类似于文件系统。您可以将代码片段添加到文件夹中,并将文件夹放在其他文件夹中。您可以根据 Metabase 实例的处理能力或物理定律(以先达到的为准)来嵌套任意数量的文件夹。
顶级文件夹是代码片段侧边栏的默认文件夹。它是包含所有文件夹和代码片段的根文件夹。
创建新的代码片段文件夹
您可以在SQL 编辑器的代码片段菜单中创建代码片段文件夹。

- 点击代码片段菜单图标(代码片段图标看起来像一段文本或代码,有三条不均匀的水平线)。
- 点击+图标,然后选择新建文件夹。
- 为您的文件夹命名,并可选择添加描述和/或将文件夹放置在现有文件夹中(“文件夹”选项)。

创建新的代码片段
在某些计划中,在创建代码片段时,您还会看到一个附加选项,可将该代码片段添加到现有文件夹中(“文件夹”选项)。

默认位置是顶级文件夹,它是所有代码片段和文件夹的根文件夹。您可以随时将代码片段添加到文件夹中(或者将代码片段移至其他文件夹,前提是您对两个文件夹都拥有编辑权限)。
请注意,代码片段名称必须是唯一的;文件夹不影响此要求。
权限
管理员(并且仅限管理员)可以通过将代码片段放入文件夹,然后授予用户组对这些文件夹的三个权限级别之一来设置代码片段的可见性和可编辑性。如果您熟悉集合权限,则功能是相似的。有关集合和文件夹权限如何协同工作,请参阅下文关于文件夹权限如何工作的讨论。
更改文件夹的权限
管理员可以通过点击文件夹旁边的省略号(…)并选择更改权限来设置文件夹的权限。
您还可以通过将鼠标移至“代码片段”侧边栏顶部,点击+左侧的省略号(…),然后选择更改权限来更改当前选定的文件夹。当位于顶级文件夹时,选择侧边栏顶部的…将为管理员提供设置所有代码片段、文件夹和子文件夹权限的选项。
更改具有子文件夹的文件夹的权限时,您可以选择通过切换同时更改子文件夹设置来将这些权限扩展到该文件夹的子文件夹。
文件夹权限选项

有三个选项用于更改代码片段文件夹权限:
- 编辑访问(绿色复选标记图标)。默认设置。当创建文件夹时,所有用户(至少拥有一个数据库的 SQL 编辑器权限)都可以查看、编辑和存档或取消存档文件夹中的代码片段。
- 查看访问(黄色眼睛图标)。拥有查看访问权限的用户组中的用户可以查看文件夹中的代码片段,但不能编辑或存档/取消存档。当然,他们可以复制代码片段代码并创建新的代码片段,而不会影响现有的代码片段。
- 撤销访问(红色 X 图标)。对代码片段文件夹没有编辑或查看权限的用户组中的用户将不会在侧边栏中看到该文件夹的代码片段,也不会在这些用户的自动完成建议中出现该文件夹中的任何代码片段。请注意,如果人们有权访问包含他们无权访问的代码片段的问题,他们仍然可以从该问题中获得结果。请参阅下方关于文件夹权限如何工作的讨论。
存档不影响权限
存档或取消存档代码片段不会影响代码片段的权限。例如,如果只有一个用户组,例如会计组,对某个文件夹拥有编辑权限,那么只有会计组中的成员(以及管理员)才能存档和取消存档该文件夹中的代码片段,因为存档和取消存档被视为对代码片段的编辑。
文件夹权限的工作原理
与集合权限一样,文件夹权限是累加的,这意味着更宽松的访问权限会覆盖更严格的访问权限。有关更详细的讨论,请参阅设置权限。
但是,代码片段文件夹权限需要仔细分析,因为代码片段文件夹的权限必须与数据和集合的权限协同工作。
基本规则是:数据比代码更敏感,因此适用于数据的权限将优先于适用于代码的权限。让我们通过一个例子来说明这一点。
权限示例
请考虑以下场景(这是一个需要仔细阅读的句子):一个用户组可能拥有对某个集合的权限,该集合包含一个使用了位于用户组无权访问的文件夹中的代码片段的问题。换句话说:该用户组中的用户有权运行集合中的问题,但他们无权访问包含其中某个问题使用的代码片段的文件夹。Metabase 将如何解决此权限问题?
分三部分
- 该用户组中的用户可以运行问题并获得结果。他们有权查看该数据(问题结果),因此他们应该能够查看该数据。用户组对集合的权限优先于对文件夹(代码片段代码)的权限。
- 该代码片段不会显示在代码片段侧边栏中。但是,尽管用户组中的用户可以无障碍地运行问题,但他们仍然无权访问代码片段所在的文件夹,因此他们无法在代码片段侧边栏中看到或编辑该代码片段(或代码片段文件夹)。
- 拥有 SQL 查询访问权限的用户仍然可以运行该代码片段,即使他们知道其名称,也无需拥有该代码片段文件夹的权限。他们无法查看或编辑该代码片段,但如果他们知道其名称,则可以将其包含在查询中,例如:
{{snippet: 我无权访问但仍可使用的示例代码片段 }}。
由于代码片段文件夹权限的工作原理,我们建议您将代码片段文件夹权限视为一种额外的代码片段组织工具,而不是一种防止访问代码片段所含 SQL 代码的方法。使用文件夹权限来保持代码片段侧边栏的整洁,通过向团队展示与其分析领域相关的文件夹,并限制对组织中重要代码片段的编辑权限,以确保重要 SQL 代码的准确性并防止引入未经审核的编辑。
延伸阅读
- 代码片段.
阅读其他版本的 Metabase 的文档。