数据沙箱:个性化Metabase中人们可以看到的数据

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

在多租户环境中管理权限

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

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

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

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

您的沙箱设置将根据您的租户数据是否合并到一个模式而略有不同——您可以使用我们的多租户权限文章比较选项。

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

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

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

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

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

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

选择性授予敏感数据访问权限

如果您处理敏感信息,如财务或医疗数据,您可以使用沙箱

  • 让特定团队根据需要查看敏感数据。
  • 将敏感数据从其他人那里隐藏起来。

例如,如果您在远程医疗领域工作,并且有一个记录护士与远程医疗患者之间交互的Patient Chat表,其模式如下

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

为了确保护士可以查看他们自己的聊天记录的完整记录(包括记录列),但不能查看其他护士的聊天记录

  • 创建一个具有“护士ID”用户属性的护士组,并将您的护士添加到该组。
  • 护士组和Patient Chat表设置一个基本沙箱,以便护士只能看到与他们的护士ID匹配的行。

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

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

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

沙箱的一个不太为人所知的使用案例是,您可以使用它们为不同的组格式化数据。

例如,您可以显示一个表的货币为

  • 英国组的人员的英镑(£)。
  • 日本组的人员的日元(¥)。

或者,也许您想为军事组的人员显示为

  • 24小时格式。
  • 非军事组的人员的12小时格式。

您可以在SQL查询中执行自定义格式化,然后在自定义沙箱中显示该SQL查询。

沙箱允许您向不同组的人员显示自定义URL和超链接文本。自定义URL与自定义着陆页配合使用时特别有用。

例如,如果您已为您的数据工程师产品经理组创建了单独的数据导入指南,您可以为每个组显示不同的超链接,例如

  • 一个数据工程师指南,它链接到https://your-company-wiki.com/data-engineers
  • 一个指向 产品经理指南 的链接,该指南位于 https://your-company-wiki.com/product-managers

在Markdown教程中了解更多信息:[创建具有沙盒属性的定制URL](/learn/metabase-basics/querying-and-dashboards/dashboards/markdown#custom-url-with-a-sandboxing-attribute)。

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

进一步阅读

下一节:使用模拟来通过GUI和SQL查询获取行级权限

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

下一篇文章