在Metabase中管理人员

如何从管理几十个用户到几千个用户。

本文概述了如何设置和扩展自助式分析。我们将保持在高层次,并提供更多详细指南的链接,我们在此的关注重点是 Metabase 的管理,特别是您组织中的人员。对于操作扩展——实际运行 Metabase 应用程序——请参阅Metabase 扩展

在您组织内实现数据民主化的目标是给人们提供他们需要做出更好决策的信息。而实现这一目标的最有效方法是让每个人都尽可能多地访问数据,同时确保他们看不到任何他们不应该看到的数据。

为此,我们建议您以简化权限为目标组织您的 Metabase。您可能出于各种原因收集敏感数据(支付、税收、责任等),但这些数据与业务智能无关(尽管它们可能混有相关的数据)。想法是在关键位置设置硬边界,这样您就不必担心谁可以看到什么,然后设置轻量级系统——甚至只是惯例——随着人员数量的增长,保持地方整洁。

1. 在 Metabase 中创建组

Metabase 使用来管理权限,这比为每个人设置权限更有效、更易于管理。我们建议您设置您的 Metabase,使您的身份提供者中的组映射到 Metabase 中的相同组。一般来说,您的组应该映射到您组织的部门,也可能映射到跨部门的团队或项目。这样,当会计部门的新人开始工作时,他们登录 Metabase 就已经可以访问会计部门其他人员所拥有的相同数据库和集合。

组管理员

专业版和企业版计划 中,您可以授权 分组管理员,他们可以添加和移除组成员。

2. 分配包括沙箱在内的这些组权限

在 Metabase 中,本质上存在两种权限类型:数据权限,它决定了访问数据库的权限,以及 收集权限,它决定了访问 Metabase 中项目(如问题和仪表板)的权限。这些权限在表或收集层面工作,但如果你需要限制对行或列的访问呢?

隐藏对所有用户不相关或技术数据

如果存在一些字段(或整个表)并不十分有帮助或相关,管理员可以在 数据模型标签 中隐藏这些字段。请注意,SQL 查询不会受到此设置的影响——具有数据库 SQL 编辑访问权限的用户始终可以访问数据库中的所有表和字段。

Selecting Do not include will hide fields in the GUI interfaces (though the field will still be acccesible in SQL/native queries.

将字段的可见性设置为 不包含 将会使该字段在查询构建器构建的问题菜单和表中不可见。在数据模型级别更改字段可见性的缺点是,该操作是全局性的,因此不太灵活。但是,如果你想要 有选择性地 授予不同人群对行或列的访问权限,你需要沙箱化数据。

数据沙箱

数据沙箱 是我们 专业版和企业版计划 中的一项功能,当与单点登录(SSO)结合使用时,可以基于用户属性限制对行或列的访问。您可以在 Metabase 中手动添加这些属性,或通过您的身份验证服务添加。您可以为基于用户属性的键设置 行级访问,或者通过创建排除某些字段的表自定义视图来 限制对列的访问。请注意,沙箱化仅适用于 GUI 问题,这引出了以下内容

SQL 编辑器访问和沙箱互斥

关于权限,您需要了解的一个重要事项是,具有数据库 SQL 访问权限的组可以访问数据库中的 所有 数据。即使字段在 GUI 菜单或 数据浏览器 中不可见,具有 SQL 访问权限的人仍然可以查询数据库中的表(以及所有行和列)。更具体地说,他们可以查询连接 Metabase 到该数据库所使用的用户账户在数据库中可用的任何数据。这引出了以下内容

SQL 权限

Metabase 缺乏表级 SQL 权限:要么向数据库授予组 SQL 编辑器访问权限,要么不授予。但既然您可以在数据库级别设置 SQL 编辑器权限,您可以为同一数据库创建两个(或更多)连接,每个连接针对该数据库中的不同用户账户有不同的连接字符串。例如,您可以设置

  • 连接 1,具有对整个数据库的访问权限
  • 连接 2,仅具有对表 A、B 和 C 的访问权限

然后,您可以授予大多数组访问连接 2(权限较低的那个)的权限,并授予选定的用户(如专职数据分析师)访问连接 1(整个数据库)的权限。Metabase 会将这些连接视为两个不同的数据库,尽管它们只是同一数据库的不同访问级别。然而,从每个人的角度来看,他们只会看到一个数据库(他们组可以访问的那个)。

应用程序权限

专业版和企业版中,您可以分配应用程序权限给组,以便人们可以按需访问管理工具,而不授予他们访问数据的权限。

3. 在您的Metabase中设置单点登录(SSO)

虽然我们希望Metabase始终在您心中占有一席之地,但我们知道它不是您使用的唯一软件。如果您的组织开始成长,那么您很可能会与像OktaAuth0OneLogin这样的单点登录(SSO)身份提供者合作,允许人们进行一次认证并访问组织使用的所有应用程序。Metabase与使用SAML和JWT标准的服务集成,这将让您对数据的访问有更精细的控制。

认证选项

目前,Metabase中有四种基本的认证选项。在开源版本中,您有

专业版和企业版中,您还有

SAML是一个使用XML在身份和服务提供者之间交换数据的开放协议。JWT类似,但不太正式——它是一个令牌,而不是一个协议。这两个标准都由像Okta和Auth0这样的身份提供者用来创建认证服务(本质上是为您组织中的每个人提供一个全球密码管理器)。例如,使用Okta,您可以一次性登录到身份提供者,然后他们将能够使用他们有权访问的所有服务,而无需不断重新输入他们的登录名和密码——或者不同的登录名和密码。身份提供者(在这种情况下是Okta)将处理与每个服务提供者的握手。要了解更多信息,请查看Auth0的SAML认证概述

使用SAML或JWT设置SSO的一个主要优势是可以将用户属性传递给Metabase,这允许您根据用户身份进行数据沙箱化,限制对表的行和/或列的访问。

4. 同步SSO和Metabase组

现在,您已经创建了组、设置了权限,并将您的SSO提供者连接到Metabase,是时候同步组了。查看我们的文档,了解如何与您的身份提供者同步组成员资格。请注意,您还可以使用LDAP(Metabase免费开源版本的一个选项)来同步组。

5. 告诉人们他们可以通过登录创建Metabase账户

到此为止,您应该已经设置好了所有内容。人们应该能够登录到Metabase并看到他们需要看到的一切,而无需看到更多。

6. 使用Metabase分析收集来监控人们如何使用您的Metabase

最后,在专业和企业计划中,您可以探索Metabase使用分析,以验证人们正在查看的内容,并确认您的权限是否按预期工作。您可以看到人们查看哪些仪表板和问题,他们运行的SQL查询的内容,以及他们下载的数据。这也是查看您的部署进展情况的好方法,例如随着时间的推移有多少新用户登录,以及每个人都在查看多少内容。

Metabase分析也有助于检查您的工作仪表板和问题的性能。数据民主化的一个问题在于,各种技能水平的人都会提出问题,有时会导致一些效率不高的查询。您可以使用Metabase分析找到运行缓慢的常用项目,然后查看我们关于使仪表板更快编写SQL查询的最佳实践的文章。

要了解更多关于使用分析的信息,请参阅我们关于如何跟踪您的数据的文章。

进一步阅读

下一部分:数据共享指南

在您的组织内部或外部,您有什么选择来共享数据或分析,何时应使用一种方法而不是另一种方法?

下一篇文章