数据沙盒:个性化用户在 Metabase 中可以看到的数据

将沙盒与用户属性配对,以自定义几乎任何情况下的数据。

在多租户环境中管理权限

如果您正在为嵌入 Metabase 用于多租户自助分析,您可以使用沙盒来确保租户 A 看不到租户 B 的数据,反之亦然。

沙盒非常适合管理复杂组织结构的权限,即使您只有一个客户。例如,如果您的客户是一所大学,则该大学可能需要为不同的群体设置不同的权限

  • 管理员 应该能够查看所有学生的数据。
  • 学生 应该只能看到自己的数据,但不能看到其他学生的数据。
  • 教授 应该看到多名学生(他们教的学生)的数据,但不是所有学生的数据。

在这种情况下,您需要为您的管理员、学生和教授创建单独的,然后将这些组分配给数据沙盒。然后,您将配置每个沙盒以自动向每个组显示不同的行或列集。

您的沙盒设置会略有不同,具体取决于您的租户数据是否混合到一个模式中 — 您可以使用我们的多租户权限文章比较选项。

如果您准备好自己尝试沙盒,请尝试数据沙盒示例,或查看数据沙盒文档

限制仪表盘订阅中的电子邮件收件人列表

我们社区的一些成员使用沙盒来锁定 Metabase 中的电子邮件地址。在创建仪表盘订阅时,沙盒组中的人员将只能在收件人列表中看到自己的电子邮件地址。

假设您有一组 教授 需要向各自的 学生 发送仪表盘订阅电子邮件。如果您将 学生 组放入沙盒中,您将自动阻止学生

  • 向他们的 教授 发送订阅电子邮件。
  • 查看其他学生的电子邮件地址。

如果您只想限制电子邮件列表,而不一定隐藏组中的任何行或列,请使用自定义沙盒并将自定义沙盒的 SQL 问题设置为 SELECT * FROM table

有选择地授予对敏感数据的访问权限

如果您处理敏感信息(如财务或医疗数据),则可以使用沙盒来

  • 让特定团队在需要知情的基础上查看敏感数据。
  • 对其他所有人隐藏该敏感数据。

例如,假设您在远程医疗领域工作,并且您有一个 患者聊天 表,该表记录了护士和远程医疗患者在如下模式中的互动

护士 ID 开始时间 结束时间 记录

为确保护士可以看到其自身聊天的完整记录(包括 记录 列),但看不到其他护士的聊天记录

  • 创建一个 护士 组,其中包含“护士 ID”的用户属性,并将您的护士添加到该组。
  • 护士 组和 患者聊天 表设置基本沙盒,以便护士只能看到与其护士 ID 匹配的行。

然后,为了限制聊天表的列,以便公司中的其他所有人都可以看到聊天的 护士 ID开始时间结束时间,但看不到敏感的 记录

  • 创建一个 非护士 组,并将非护士员工添加到该组。
  • 非护士 组和 患者聊天 表设置自定义沙盒,以隐藏敏感的 记录 列。

向不同组显示自定义数据格式

沙盒的一个鲜为人知的用例是您可以使用它们为不同的组格式化数据。

例如,您可以以以下货币显示表格的货币

  • 英镑 (£),适用于 英国 组中的人员。
  • 日元 (¥),适用于 日本 组中的人员。

或者,您可能希望以以下格式显示日期时间列

  • 24 小时制,适用于 军事 组中的人员。
  • 12 小时制,适用于 非军事 组中的人员。

您可以在 SQL 问题中进行自定义格式化,然后在自定义沙盒中显示该 SQL 问题。

沙盒允许您向不同组中的人员显示自定义 URL 和超链接文本。自定义 URL 在与自定义着陆页配对时尤其有用。

例如,如果您为您的 数据工程师产品经理 组创建了单独的数据入门指南,则可以向每个组显示具有不同目标位置的不同超链接,例如

在我们的 Markdown 教程中了解更多信息:使用沙盒属性创建自定义 URL

请记住,如果您只需要沙盒来格式化数据而不限制任何内容,请使用自定义沙盒并将沙盒的 SQL 问题设置为 SELECT * FROM table

进一步阅读

下一步:使用模拟获取 GUI 和 SQL 查询的行级权限

在您的数据库中创建角色,并让 Metabase 在查询您的数据库时模拟这些角色。

下一篇文章