角色

角色(Role)定义

在Lakehouse中,角色是一种授权管理的工具,用于将若干个权限点集中在一起,然后再将此角色授予给一个或多个用户(User)。

  • 当用户被授予角色后,用户即拥有该角色包含的所有权限。
  • 角色也可被授予更多的权限点,从而实现权限的灵活扩展与管理。

相较于直接对用户逐个授予权限(ACL 模式),通过“角色”来分配权限,可以显著简化管理流程,也更易于维护和审计。因此,推荐在日常的权限管理中,充分使用 基于角色的访问控制(RBAC, Role-Based Access Control)。

角色类型

Lakehouse中的角色分为两种类型:预置角色自定义角色

  1. 预置角色

    • 预置角色是平台在服务实例创建时自动配置的角色,不可修改其权限删除,但可以将预置角色直接授予给用户。
    • 平台预置多个角色,涵盖从实例层面的管理到工作空间层面的管理与使用,帮助用户快速完成基本授权并使用产品功能。全部系统预置角色及其默认权限详见系统内置角色权限列表
  2. 自定义角色

    • 用户可根据自身业务需要,在工作空间范围内创建自定义角色,对该角色进行灵活的权限配置与维护。
    • 自定义角色的权限可随时修改或删除,以便适应不断变化的业务场景需求。
    • 注意:目前仅支持在工作空间内创建自定义角色,不支持在实例级别创建自定义角色。创建自定义角色的操作仅支持使用SQL执行,暂不支持Web端操作。

角色级别

大数据平台将元数据对象区分为“实例级”和“工作空间级”两类,角色也相应分为“实例角色”和“空间角色”:

实例角色(Instance Role):实例级别角色有两个使用场景:1)用于实例级资源和操作的全局管控;2)用于跨多个工作空间的权限授予。

工作空间角色(Workspace Role):作用于特定工作空间范围内的对象(如schema、table、virtual cluster等)。工作空间角色以工作空间为边界,互不影响。

角色的管理与使用

查看角色

可在“管理” - “安全” - “角色”列表中,查看当前实例与工作空间内的角色信息。

或在“管理” - “工作空间”列表中点击进入工作空间详情页,切换到“角色”页签,查看工作空间下所有角色。

或在SQL中执行以下语句,查询当前连接的工作空间内所有工作空间级别角色:

SHOW ROLES;

将角色授予用户

当一个自定义角色创建并具备了相应权限后,需要将该角色授予给用户,用户才能实际使用该角色所包含的权限。

可通过Web端或SQL方式将角色授予用户。

Web端操作

在“安全”-“角色”页面,可以查看当前实例下的服务实例级别角色和工作空间级别角色。

对任一角色授权时,点击该角色名称,进入角色详情页,此时可以查看该角色已被授予的所有用户。点击“+用户授予”,在弹窗中勾选需要添加的用户,点击“授权”,即可将角色授予用户。 !

移除角色被授予的用户时,点击用户名右侧的"...",选择“移除用户”,即可取消该用户使用这个角色的权限。

在“管理”-“工作空间”列表进入工作空间详情页面,在“角色”页签也可以查看该空间内的角色列表,并通过上述操作将该角色授予或取消授予用户。

SQL操作

仅工作空间级别的用户支持使用SQL操作进行授权。在工作空间内执行以下语句,可将空间内角色授予指定用户。

Grant ROLE <ROLE_NAME> TO USER <USER_NAME>;

执行以下语句可移除角色中的指定用户;

REVOKE ROLE <ROLE_NAME> FROM USER <USER_NAME>;

创建用户自定义角色

当前仅支持创建工作空间级别的自定义角色,需要使用具备该工作空间管理员(workspace_admin)角色的用户进行操作。仅支持使用SQL创建自定义角色。

创建语法示例

CREATE ROLE <ROLE_NAME>;

给自定义角色添加权限

在工作空间内,可通过 GRANT 语句为自定义角色添加权限。示例:

-- 授予某自定义角色对 schema my_schema 下所有表的读写权限
GRANT SELECT, READ METADATA, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA my_schema
TO ROLE my_custom_role;

常见问题

  1. 角色和 ACL(访问控制列表)的区别

    • ACL 直接将权限授予给用户;而角色将权限“打包”后再授予用户。
    • 对于部门人员变动频繁或权限配置复杂的场景,建议优先使用角色方式减少重复操作。
  2. 是否支持多角色叠加权限

    • 支持。一个用户可被授予多个角色,最终生效的权限是各角色权限范围的并集。
  3. 实例角色是否可以访问工作空间

    • 否。实例角色与工作空间角色互不影响,实例角色不具备也无法获取工作空间级对象的权限。
  4. 预置角色能否修改或删除

    • 不可以。预置角色是系统内置、不可变动的角色,只能选择是否授予用户。

联系我们
预约咨询
微信咨询
电话咨询