美文网首页
Superset 用户权限管理原理

Superset 用户权限管理原理

作者: 程序员赤小豆_gzh同名 | 来源:发表于2023-04-21 21:40 被阅读0次

在企业生产环境中,用户权限管理是非常重要的一个环节,涉及数据安全管控。Superset 实现了基于角色的访问控制(Role Based Access Control, RBAC), 这是一种非常流行和高效的访问控制机制。RBAC 可以将复杂的安全权限规则抽象为简单的角色概念, 通过为用户分配角色实现其对数据和对象的控制。

RBAC的基本原理

RBAC(Role-Based Access Control)是一种基于角色的访问控制机制。其基本思想是:

  1. 将权限分配给角色, 而不是直接分配给用户。一个角色包含一组权限。
  2. 将用户与角色进行关联, 一个用户可以被分配一个或多个角色。
  3. 用户通过所拥有的角色间接获得权限。
RBAC有以下基本规则:
  1. 分离职责: 创建角色时按职责进行分离, 如普通用户角色、管理员角色等。
  2. 最少权限: 每个角色分配的权限应该是其工作职责所需要的最少权限。
  3. 不可传递的角色继承: 如果角色A继承角色B, 则A拥有B的所有权限, 但B不拥有A的权限。
  4. 角色指定: 用户只能通过被分配的角色获得权限, 不能直接获得权限。
  5. 相关的角色和权限: 将权限按职责进行分组并赋予角色可以简化管理。

RBAC通过上述规则实现了权限与角色的解耦, 使用户、权限、角色三者之间建立了清晰的关联关系。这使得权限的授权管理变得非常灵活与简单。通过为用户分配适当的角色, 就可以实现对其访问权限的控制, 这是RBAC流行于各大系统的基本原因。

Superset就采用了RBAC实现细粒度数据访问控制,通过创建不同的角色并分配相关权限,再将角色赋予用户或用户组, 可以实现对数据、查询、仪表盘等的安全管理。

Superset 管理用户和权限

Superset可以有效地管理用户, 主要包含以下功能:

  • 创建用户

可以在Superset的“用户管理”页面点击“+ 新建用户”按钮创建一个新的用户。需要输入用户名、密码、确认密码、邮箱等信息。

  • 修改用户信息

在“用户管理”页面选择一个用户,点击“编辑”按钮可以修改其信息,包括用户名、密码、邮箱、是否激活状态等。

  • 删除用户

在“用户管理”页面选择一个用户,点击“删除”按钮可以彻底删除该用户。删除后,该用户的一切访问权限、内容均会被删除。

  • 用户组管理
    可以在Superset里创建用户组,将多个用户放在同一个用户组里统一管理。在“用户组管理”页面可以创建、修改和删除用户组。

  • 权限管理
    Superset采用角色权限管理的模式。有两种角色类型:

    • 预定义角色:提供一组预定义好的角色,如Alpha、Gamma、Delta等,包含不同的权限组。
    • 自定义角色:可以创建自定义角色,选择相应的权限粒度进行分配,如数据访问、SQL表创建、仪表盘创建权限等。

将创建好的角色分配给用户或用户组,即可控制其对应的数据集和功能访问权限。

  • Auditing日志记录
    Superset会记录详细的用户交互日志,如登录日志、SQLexecuted日志、Dashboard访问日志等。这些日志可以追溯数据和功能的访问记录,用于权限管理判断和数据安全审查。

Auditing 日志的查询示例,可以在 SQL Lab 中执行

SELECT * FROM logs 
WHERE 
    user_id=(SELECT id FROM ab_user WHERE username='gamma')
    AND schema_name='examples'
    AND dttm 
        BETWEEN DATE_SUB(NOW(), INTERVAL 3 DAY) AND NOW()

综上,Superset提供比较全面而细致的用户管理功能。通过控制用户、用户组和权限,可以实现对数据、SQL查询和仪表盘等的安全访问管理。这是Superset作为企业BI平台广泛应用的重要条件。

如果你需要自定义一些用户权限,可以参考我的下一篇~ 如果对Superset的使用想要深入交流,也欢迎你来connect。

国内的公司使用 Superset 的越来越多了,很多开发遇到问题的也都主动找到我。我都非常乐意分享我对Superset的实践 威信: pabi2020。一方面可以了解大家关注什么问题,另一方面我可以继续整理和输出。

相关文章

  • 用户和权限管理

    用户管理 权限管理 收回权限 查看权限

  • Mysql 用户权限管理

    MYSQL 用户权限 MySQL之权限管理 用户权限管理 SQL脚本 1.创建用户 PARAMETER'scorp...

  • MySQL权限管理

    MySQL中的账号与权限管理 权限系统的工作原理 MySQL权限系统通过下面两个阶段进行认证: 对连接的用户进行身...

  • Oracle | 用户、权限、角色管理操作

    一、用户管理 1、创建用户 2、修改用户 3、删除用户 二、权限管理 1、系统权限 - 授权操作 2、对象权限 -...

  • linux 之用户权限

    用户权限相关命令 目标 用户/权限/组的基本概念 用户管理终端命令 访问权限终端命令 01.用户管理 1.1 多用...

  • Linux 6-用户权限相关命令

    目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限...

  • 10.用户权限相关命令

    目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限...

  • RabbitMQ常用命令

    添加用户 添加vhost 赋予用户管理员权限 为用户赋予权限

  • 数据库之安全机制

    用户管理 权限管理 查看授权信息 关于权限 关于用户IP mysql client 10.0.122.10 my...

  • 数据库 权限设计

    数据库 权限设计 -系统权限管理设计-通用权限管理设计 之 数据库结构设计 权限 用户 角色 组 用户表

网友评论

      本文标题:Superset 用户权限管理原理

      本文链接:https://www.haomeiwen.com/subject/wbbjjdtx.html