【问题标题】:Set permissions for dashboard设置仪表板的权限
【发布时间】:2019-11-01 16:07:00
【问题描述】:

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

例如:

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

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

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

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

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

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

【问题讨论】:

    标签: superset apache-superset


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢亚历山大。我会检查一下,看看这是否能解决我的问题。
    猜你喜欢
    • 2022-11-23
    • 2021-06-23
    • 2019-07-21
    • 2016-03-10
    • 2019-05-28
    • 2021-04-01
    • 1970-01-01
    • 2012-11-08
    • 2014-09-17
    相关资源
    最近更新 更多