数据沙箱:个性化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模拟这些角色。