限制人们在 Metabase 中可以看到的数据
将行和列安全与用户属性结合,可为几乎任何情况定制数据。
行和列安全以前称为数据沙盒。这是同一个功能,只是现在有了更具描述性的名称。
在多租户环境中管理权限
如果您正在为嵌入式 Metabase 实现多租户自助分析,您可以使用行和列安全来确保租户 A 无法看到租户 B 的数据,反之亦然。
即使您只有一个客户,行和列安全策略也能出色地管理复杂组织结构的权限。例如,如果您的客户是一所大学,该大学可能需要为不同群体设置不同的权限:
- 管理员应该能够查看所有学生的数据。
- 学生应该只能看到自己的数据,而不能看到其他学生的数据。
- 教授应该看到多个学生(他们教的学生)的数据,但不是所有学生的数据。
在这种情况下,您需要为管理员、学生和教授创建单独的群组,然后为这些群组配置行和列安全策略,以自动向每个群组显示不同的行或列集合。
您的设置会因租户数据是否混合在同一个模式中而有所不同——您可以使用我们的多租户权限文章比较这些选项。
如果您准备好亲自尝试行和列安全,请尝试这些示例,或查看文档。
限制仪表盘订阅中的邮件收件人列表
我们社区的一些成员使用行和列安全来锁定 Metabase 中的电子邮件地址。在创建仪表盘订阅时,配置了行和列安全的群组中的人员在收件人列表中将只能看到自己的电子邮件地址。
假设您有一组教授需要向他们各自的学生发送仪表盘订阅电子邮件。如果您为学生群组配置行和列安全,您将自动阻止学生:
- 向他们的教授发送订阅电子邮件。
- 看到其他学生的电子邮件地址。
如果您只想限制电子邮件列表,而不必对某个群组隐藏任何行或列,请使用带有自定义视图的安全配置,并将视图设置为 SELECT * FROM table
。
有选择地授予对敏感数据的访问权限
如果您处理敏感信息,如财务或医疗数据,您可以使用行和列安全来:
- 让特定团队根据需要查看敏感数据。
- 向其他人隐藏这些敏感数据。
例如,假设您在远程医疗领域工作,并且有一个患者聊天表,记录了护士和远程医疗患者之间的互动,其模式如下:
护士 ID | 开始时间 | 结束时间 | 聊天记录 |
---|---|---|---|
… | … | … | … |
为确保护士可以看到自己聊天的完整记录(包括聊天记录列),但不能看到其他护士的聊天记录:
- 创建一个护士群组,带有“护士 ID”的用户属性,并将您的护士添加到该群组。
- 为护士群组和患者聊天表设置行级安全,以便护士只能看到与其护士 ID 匹配的行。
然后,要限制聊天表的列,以便公司里的其他人可以看到聊天的护士 ID、开始时间和结束时间,但不能看到敏感的聊天记录:
- 创建一个非护士群组,并将非护士员工添加到该群组。
- 为非护士群组和患者聊天表设置列级安全,隐藏敏感的聊天记录列。
向不同群组显示自定义数据格式
行和列安全的一个鲜为人知的用例是,您可以用它们为不同的群组格式化数据。
例如,您可以将表的货币显示为:
- 对英国群组的人员显示英镑 (£)。
- 对日本群组的人员显示日元 (¥)。
或者,您可能希望将一列日期时间显示为:
- 对军人群组的人员显示 24 小时格式。
- 对非军人群组的人员显示 12 小时格式。
您可以在 SQL 问题中进行自定义格式化,然后使用该问题为不同群组中的人员创建数据的自定义视图。