在 Metabase 中管理人事
如何从管理数十名用户到管理数千名用户。
本文概述了如何设置和扩展自助式分析。我们将保持在较高的层面,并链接到各个功能的更详细指南,这里的重点将是 Metabase 的管理,特别是组织中人员的管理。有关运营扩展(Metabase 应用程序的实际运行),请参阅大规模 Metabase。
在您的组织中实现数据民主化的目标是让人们获得做出更好决策所需的信息。实现这一目标的最佳方法是让每个人都能访问尽可能多的数据,同时确保他们看不到任何不应该看到的数据。
为此,我们建议您以简化权限为目标来组织您的 Metabase。您可能出于各种原因(支付、税务、责任等)收集敏感数据,但这些数据与商业智能无关(尽管它可能与相关数据混合在一起)。我们的想法是在关键位置设置硬边界,这样您就不必担心谁能看到什么,然后设置轻量级系统——甚至只是约定——以在人员数量增加时保持整洁。
1. 在 Metabase 中创建组
Metabase 使用组来管理权限,这比为每个人设置权限更高效、更易于管理。我们建议您设置 Metabase,使您的身份提供商中的组映射到 Metabase 中的相同组。一般来说,您的组应该映射到组织中的部门,也可能映射到跨部门的项目或任务团队。这样,一旦会计部门的新人开始工作,他们登录 Metabase 后就可以访问会计部门其他人员所拥有的相同数据库和集合。
群组经理
在专业版和企业版计划中,您可以指定组管理员,他们可以将人员添加到组中或从组中移除人员。
2. 为这些组分配数据和集合权限
Metabase 中基本有两种类型的权限:数据权限,它决定了对数据库的访问,以及集合权限,它决定了对 Metabase 中问题和仪表盘等项目的访问。这些权限在表或集合级别工作,但如果您需要限制对行或列的访问怎么办?
对所有用户隐藏不相关或技术数据
如果有不太有用或不相关的字段(或整个表),管理员可以在**数据模型选项卡**中隐藏这些字段。请注意,SQL 查询不受此设置的影响——具有数据库 SQL 编辑器访问权限的用户始终可以访问该数据库中的所有表和字段。
将字段的可见性设置为不包含
将从查询构建器中构建的问题的菜单和表中排除该字段。在数据模型级别更改字段可见性的缺点是该操作是全局的,因此灵活性不高。但是,如果您想**选择性地**授予对不同人群的行或列的访问权限,则需要使用行和列安全权限。
行和列安全
行和列是 Metabase 专业版和企业版计划中提供的一项功能,当与单点登录 (SSO) 结合使用时,它允许您根据用户属性限制对行或列的访问。您可以在 Metabase 中手动添加这些属性,也可以通过身份验证服务添加。您可以设置与用户属性关联的行级访问权限,或者可以通过创建排除某些字段的自定义表视图来限制对列的访问。请注意,行和列安全策略仅适用于使用图形查询构建器构建的问题,这引出了
SQL 编辑器访问和行或列安全性互斥
关于权限,您需要了解的重要一点是,具有数据库 SQL 访问权限的组可以访问数据库中的*所有*数据。即使某个字段在查询构建器或数据浏览器中不可见,具有 SQL 访问权限的人员仍然能够查询数据库中的表(以及所有行和列)。更具体地说,他们将能够查询您用于将 Metabase 连接到该数据库的用户帐户在数据库中可用的任何数据。这引出了
SQL权限
Metabase 缺乏表级 SQL 权限:您要么授予组 SQL 编辑器对数据库的访问权限,要么不授予。但是,由于您可以在数据库级别设置 SQL 编辑器权限,因此您可以创建两个(或更多)到同一数据库的连接,每个连接都有针对该数据库中不同用户帐户的不同连接字符串。例如,您可以设置
- 连接 1,可访问整个数据库
- 连接 2,仅可访问表 A、B 和 C
然后,您可以授予大多数组对连接 2(权限较低的连接)的访问权限,并授予选定的用户(例如专门的数据分析师)对连接 1(整个数据库)的访问权限。Metabase 会将这些连接视为两个独立的数据库,即使它们只是对同一数据库的两个不同访问级别。但是,从每个人的角度来看,他们只会看到一个数据库(他们的组有权访问的数据库)。
应用权限
在专业版和企业版计划中,您可以为组分配应用程序权限,以按需授予人们对管理工具的访问权限,而无需授予他们对数据的访问权限。
3. 在您的 Metabase 中设置 SSO
虽然我们希望 Metabase 永远在您心中占有特殊地位,但我们知道它不是您唯一使用的软件。如果您的组织正在发展,您很可能正在使用单一登录 (SSO) 身份提供商,例如 Okta、Auth0 或 OneLogin,它允许人们一次认证即可访问您的组织使用的所有应用程序。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使用情况分析,以验证人们正在查看什么,并确认您的权限按预期工作。您可以查看人们查看了哪些仪表板和问题,他们运行的 SQL 查询内容,以及他们下载了哪些数据。这也是了解您的推广情况的好方法,例如随着时间的推移有多少新用户登录,以及每个人查看了多少内容。
使用情况分析对于检查您的主力仪表板和问题的性能也很有用。数据民主化的问题之一是所有技能水平的人都会提出问题,这有时会导致效率较低的查询。您可以使用使用情况分析来查找运行缓慢的常用项目,然后查看我们的帖子,获取有关如何加快仪表板速度和编写 SQL 查询的最佳实践的提示。
要了解更多关于使用情况分析的信息,请查看我们关于如何监控数据的文章。