设定资讯主页的权限

时间:2019-06-19 01:09:35

标签: superset apache-superset

我在Superset中为不同的角色创建了不同的仪表板。目前,我可以限制谁可以看到某些仪表板/图表的唯一方法是使用不同的表/数据源。

例如:

在MySQL中,我有一个名为TableX的表。然后,我为此表创建了多个视图。

A组,我创建了TableX的视图,并将其作为TableA拉入Superset。在此小组下,我将角色设置为具有对TableA的数据源访问权限。

B组,我为TableX创建了另一个视图,并将其作为TableB拉入Superset。在此小组下,我将角色设置为具有对TableB的数据源访问权限。

C组,我为TableX创建了另一个视图,并将其作为TableC拉入Superset。在此小组下,我将角色设置为具有对TableC的数据源访问权限。

这很好用,因为我可以控制他们可以看到哪些仪表板,而其他仪表板是隐藏的。但是,我必须为每个角色创建相同图表的多个副本,唯一的变化是数据源。

如何在不创建多个数据源的情况下正确设置仪表盘的权限。我正在运行Apache Superset 0.29.0rc7。谢谢!

1 个答案:

答案 0 :(得分:1)

使用行级安全过滤器(在安全 菜单下),您可以创建分配给特定表以及一组角色的过滤器。如果您希望 A 组的成员只能访问 TableXdepartment = "finance" 的行,您可以:

使用该子句创建一个行级安全过滤器 (department = "finance")。然后将该子句分配给 GroupA 角色及其适用的表。 clause 字段可以包含任意文本,然后添加到生成的 SQL 语句的 WHERE 子句中。

所有相关的行级安全过滤器将组合在一起(在幕后,不同的 SQL 子句使用 AND 语句组合)。这意味着可能会出现两个角色冲突的情况,从而将表子集限制为空。

请同时查看Row Level Security下方的链接。