访问控制概览
本文介绍了云器Lakehouse的访问控制总体框架和关键概念。通过了解访问控制的核心原理和相关要素,用户与管理员可在云器Lakehouse平台中安全、灵活地分配与管理权限,从而确保数据与元数据对象的合规使用。
1. 访问控制模型
云器Lakehouse采用灵活的访问控制机制,支持两种主要模型:
- 访问控制列表(ACL): 将权限直接分配给用户(User)。在小型或简单场景中,这种方式较为直观;但在大型环境中,管理难度会随用户数量及权限需求增加而上升。
- 基于角色的访问控制(RBAC): 首先为角色(Role)分配权限,然后将角色授予用户,从而实现权限的间接管理。RBAC有助于简化复杂环境下的权限维护。当业务需求变化时,只需在角色层面调整权限,而无需为每个用户单独维护。

与传统的DAC(Discretionary Access Control)不同,云器Lakehouse不直接支持在对象所有者基础上继续二次授权的DAC模式。建议采用RBAC,对权限进行集中、可控的统一管理。
在云器Lakehouse中,RBAC和ACL的授权方式是并存的。一个用户可以同时被直接授予多个权限,并同时被授予多个角色。当该用户在执行任何操作时,其权限范围均为其被“直接授予的权限”和“被授予的角色”权限之和。用户无需声明其当前以何种身份或角色行使操作,鉴权系统将遍历该用户所有当前拥有的权限并给出鉴权结果。
2. 对象及其所有权
对象(Object)
元数据对象是可被授予权限的实体,包括工作空间(workspace)、schema、table、view、virtual cluster等。这些对象在创建后默认由创建者拥有其全部权限,但无法依此进行二次授权。访问对象时,如果未被显式授权,则默认拒绝。
云器Lakehouse中所有的元数据对象,详见授权文档。
对象所有权(Ownership)
初始创建该对象的用户(user)拥有对象的所有权(ownership)。拥有对象的角色可以对对象执行包括修改、删除在内的全部操作。当前暂不支持对对象所有权的转移。
为了实现更灵活的权限分配机制和更安全的访问控制,推荐通过角色权限体系,使用服务实例管理员(instance_admin)角色和工作空间管理员(workspace_admin)角色进行统一的授权方式管理对象访问。
3. 角色层次与类型
角色(Role)
角色是权限的载体。当为角色分配权限点后,通过将该角色授予给用户,可实现权限的间接传递。当用户拥有多个角色时,其权限为这些角色权限集合的并集。
角色层次(Role Hierarchy)
角色可分为两个层级范围:
- 实例角色(Instance Role):用于实例级资源和操作的全局管控。
- 工作空间角色(Workspace Role):作用于特定工作空间范围内的对象(如schema、table、virtual cluster等)。工作空间角色以工作空间为边界,互不影响。
这种层次结构有助于在全局与局部范围实现精细的访问控制。当业务规模扩大、权限需求复杂时,可以通过在实例角色与工作空间角色间建立清晰的角色层次,简化权限分配。
预置角色与自定义角色
云器Lakehouse提供了若干预置角色(如实例管理员、数据源管理员、空间管理员等)以满足基础使用场景。用户还可在工作空间内创建自定义角色(通过SQL语句),从而灵活定义与调整符合自身业务需求的权限集。
云器Lakehouse中所有的预置角色及其默认权限,详见授权文档。
4. 权限及授权管理
权限(Privilege)
权限定义了对对象所能执行操作的最小访问单元,包括对表的查询、插入数据、对schema的管理或对虚拟集群的使用等。权限点可细粒度地定义用户对对象进行的读写改删操作。
云器Lakehouse中所有元数据对象及其权限点,详见授权文档。
授权与回收(Grant & Revoke)
使用 GRANT
与 REVOKE
命令对元数据对象授权或回收权限,权限变更即时生效。在Web界面中也可进行相应的可视化操作。
示例:
GRANT SELECT ON TABLE my_table TO ROLE analyst_role;
REVOKE INSERT ON TABLE my_table FROM ROLE analyst_role;
业务对象(如脚本、任务和数据质量规则)暂不支持SQL细粒度授权,其访问权限通过授予对应预置角色实现。
无超级用户概念
云器Lakehouse中不存在可绕过权限检查的超级用户(super-user)或超级角色(super-role)。所有访问操作都必须明确获得授权,确保数据访问的安全与合规。