确保在数据库中配置了正确的权限和角色,并在Superset中将这些角色授权给相应的用户。
确保Superset中的用户角色与数据库中的角色匹配。
在Superset中设置正确的查询级别过滤器,以便在查询时应用正确的安全策略。
确保Superset中的查询不使用 GROUP BY 子句,因为ROW-LEVEL SECURITY 可能会与 GROUP BY 子句相互冲突。
示例:
假设有一个Superset用户Role1,数据库中有一个角色role1,并且该角色被授予了SELECT权限。可以按照以下步骤进行设置:
将数据库连接添加到Superset并在“权限”选项卡中检查是否已授予SELECT权限给该用户。
在“设置”选项卡中,将Role1与role1关联。
在“面板”选项卡中,找到要为该角色设置行级安全性的图表。进入编辑模式,转到“数据”选项卡。在“行级安全性过滤器”字段中,输入相应的SQL语句。
例如,在以下示例中,我们对包含销售区域、销售部门和销售额的数据表sales_data进行筛选,只显示销售区域为”North Region”和销售部门为”Sales” 的记录。
SELECT * FROM sales_data WHERE Region = 'North Region' AND Department = 'Sales'
添加到Superset的查询中应该包含有效的查询过滤器。例如,如果您正在使用以下查询:
SELECT * FROM sales_data
将其修改为适当的查询过滤器:
SELECT * FROM sales_data WHERE Region = 'North Region' AND Department = 'Sales'
最后,请