GRANT

功能概述

将指定权限授予角色或用户,实现对工作空间资源的细粒度访问控制。

Workspace 用户和角色权限管理语法

GRANT workspacePrivileges ON WORKSPACE workspace_name | workspaceObjectPrivileges ON { ROLE | SCHEMA | VCLUSTER | DATALAKE | FUNCTION } workspace_object_name | schemaPrivileges ON SCHEMA schema_name | schemaObjectPrivileges ON { TABLE | VIEW | MATERIALIZED VIEW } schema_object_name TO { ROLE role_name | USER user_name } [WITH GRANT OPTION];

权限类型说明

-- 工作空间级别:创建对象 workspacePrivileges ::= CREATE { SCHEMA | VCLUSTER } -- 工作空间下对象权限 workspaceObjectPrivileges ::= ALTER | DROP | READ METADATA | ALL [PRIVILEGES] -- Schema 级别:创建对象 schemaPrivileges ::= CREATE { TABLE | VIEW | MATERIALIZED VIEW } | ALL -- Schema 下对象权限 schemaObjectPrivileges ::= ALTER | DROP | SELECT | INSERT | READ METADATA | ALL

参数说明

参数必填说明
workspacePrivileges
workspacePrivileges
是(授予工作空间权限时)工作空间级别权限,例如
CREATE SCHEMA
CREATE SCHEMA
CREATE VCLUSTER
CREATE VCLUSTER
workspaceObjectPrivileges
workspaceObjectPrivileges
是(授予工作空间对象权限时)工作空间下对象权限,例如
ALTER
ALTER
DROP
DROP
READ METADATA
READ METADATA
ALL [PRIVILEGES]
ALL [PRIVILEGES]
schemaPrivileges
schemaPrivileges
是(授予 Schema 权限时)Schema 级别权限,例如
CREATE TABLE
CREATE TABLE
CREATE VIEW
CREATE VIEW
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW
ALL
ALL
schemaObjectPrivileges
schemaObjectPrivileges
是(授予 Schema 对象权限时)Schema 下对象权限,例如
ALTER
ALTER
DROP
DROP
SELECT
SELECT
INSERT
INSERT
READ METADATA
READ METADATA
ALL
ALL
workspace_name
workspace_name
是(授予工作空间权限时)工作空间名称
workspace_object_name
workspace_object_name
是(授予工作空间对象权限时)工作空间下对象名称(Schema、VCluster、Function 等)
schema_name
schema_name
是(授予 Schema 权限时)Schema 名称
schema_object_name
schema_object_name
是(授予 Schema 对象权限时)对象完整名称,格式为
schema_name.object_name
schema_name.object_name
role_name
role_name
是(授予角色时)被授权的角色名称
user_name
user_name
是(授予用户时)被授权的用户名称
WITH GRANT OPTION
WITH GRANT OPTION
允许被授权方将该权限再转授给其他用户

使用示例

  1. 授予角色

    simple_role
    simple_role
    在工作空间下创建 VCLUSTER 的权限:

    GRANT CREATE VCLUSTER ON WORKSPACE lakehouse_public TO ROLE simple_role;

  2. 授予角色

    simple_role
    simple_role
    修改名为
    default
    default
    的 VCLUSTER 的权限:

    GRANT ALTER VCLUSTER ON VCLUSTER default TO ROLE simple_role;

  3. 授予角色

    simple_role
    simple_role
    public
    public
    Schema 下创建表和视图的权限:

    GRANT CREATE VIEW, CREATE TABLE ON SCHEMA public TO ROLE simple_role;

  4. 授予角色

    my_role
    my_role
    对指定表的查询和修改权限:

    GRANT SELECT, ALTER ON TABLE public.my_table TO ROLE my_role;

  5. 授予角色

    my_role
    my_role
    对指定视图的查询权限:

    GRANT SELECT ON VIEW public.my_view TO ROLE my_role;

  6. 授予角色

    my_role
    my_role
    对指定物化视图的查询权限:

    GRANT SELECT ON MATERIALIZED VIEW public.my_materialized_view TO ROLE my_role;

  7. 授予用户

    tester
    tester
    角色
    test_readonly_role
    test_readonly_role

    GRANT ROLE test_readonly_role TO USER tester;

  8. 授予用户

    tester
    tester
    查询指定表的权限,并允许其转授:

    GRANT SELECT ON TABLE public.my_table TO USER tester WITH GRANT OPTION;

执行成功后返回空结果集,无错误信息即表示授权成功。可通过

SHOW GRANTS TO ROLE role_name
SHOW GRANTS TO ROLE role_name
SHOW GRANTS TO USER user_name
SHOW GRANTS TO USER user_name
验证授权结果。

注意事项

  • 执行此命令需要具备
    workspace_admin
    workspace_admin
    security_admin
    security_admin
    角色,或者对目标对象拥有
    WITH GRANT OPTION
    WITH GRANT OPTION
    权限。
  • 推荐通过角色(
    GRANT ROLE
    GRANT ROLE
    )管理权限,便于批量授权和统一回收。
  • 遵循最小权限原则,仅授予完成工作所需的最低权限。
  • 使用
    WITH GRANT OPTION
    WITH GRANT OPTION
    时需谨慎,被授权方可能将权限扩散给其他用户。

Instance Role 授权

通过 Instance Role 可授予跨工作空间的全局权限,授权对象包括用户或其他角色。

语法说明

-- 将 Instance Role 授予用户 GRANT INSTANCE ROLE <role_name> TO USER <user_name>; -- 授予 Instance Role 工作空间权限 GRANT <privilege> ON WORKSPACE <workspace_name> TO INSTANCE ROLE <role_name>; -- 授予 Instance Role 表级权限 GRANT <privilege> ON TABLE <workspace>.<schema>.<table> TO INSTANCE ROLE <role_name>; -- 查看 Instance Role 权限 SHOW GRANTS TO INSTANCE ROLE <role_name>;

示例

-- 授予用户 Instance Role GRANT INSTANCE ROLE inst_role TO USER lh_engine_test_01; -- 授予工作空间全部权限 GRANT ALL ON WORKSPACE ws1 TO INSTANCE ROLE inst_role; -- 授予单表权限 GRANT ALL ON TABLE ws1.schema.table TO INSTANCE ROLE inst_role; -- 查看权限(预期含跨空间授权记录) SHOW GRANTS TO INSTANCE ROLE inst_role; -- 回收工作空间权限 REVOKE ALL ON WORKSPACE ws1 FROM INSTANCE ROLE inst_role;

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