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