GRANT TO USER

功能概述

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

语法

授予对象权限给用户

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

授予角色给用户

GRANT ROLE role_name TO USER user_name;

权限类型说明

-- 工作空间级别:创建对象 workspacePrivileges ::= CREATE { SCHEMA | VCLUSTER } -- 工作空间下对象权限 workspaceObjectPrivileges ::= -- SCHEMA、FUNCTION ALTER | DROP | READ METADATA | ALL [PRIVILEGES] -- VCLUSTER ALTER | DROP | USE | READ METADATA | ALL [PRIVILEGES] -- JOB ALTER | CANCEL | READ METADATA | ALL [PRIVILEGES] -- Schema 级别:创建对象 schemaPrivileges ::= CREATE { TABLE | VIEW | MATERIALIZED VIEW } | ALL -- Schema 下对象权限 schemaObjectPrivileges ::= -- TABLE ALTER | DROP | SELECT | INSERT | READ METADATA | ALL -- VIEW / MATERIALIZED VIEW ALTER | DROP | SELECT | 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
user_name
user_name
被授权的用户名称
role_name
role_name
是(授予角色时)角色名称,支持自定义角色和系统预置角色
WITH GRANT OPTION
WITH GRANT OPTION
允许被授权用户将该权限再转授给其他用户

使用示例

  1. 授予用户

    tester
    tester
    角色
    test_readonly_role
    test_readonly_role

    GRANT ROLE test_readonly_role TO USER tester;

  2. 授予用户

    tester
    tester
    查询表
    semantic_model_test.dim_customer
    semantic_model_test.dim_customer
    的权限:

    GRANT SELECT ON TABLE semantic_model_test.dim_customer TO USER tester;

  3. 授予用户

    tester
    tester
    在 Schema
    semantic_model_test
    semantic_model_test
    下创建表的权限:

    GRANT CREATE TABLE ON SCHEMA semantic_model_test TO USER tester;

  4. 授予用户

    tester
    tester
    在工作空间下创建 VCluster 的权限:

    GRANT CREATE VCLUSTER ON WORKSPACE quick_start TO USER tester;

  5. 授予角色

    test_developer_role
    test_developer_role
    在 Schema
    semantic_model_test
    semantic_model_test
    下创建视图的权限:

    GRANT CREATE VIEW ON SCHEMA semantic_model_test TO ROLE test_developer_role;

  6. 授予用户

    tester
    tester
    修改 VCluster
    default
    default
    的权限,并允许其转授:

    GRANT ALTER VCLUSTER ON VCLUSTER DEFAULT TO USER tester WITH GRANT OPTION;

以上命令执行成功后返回空结果集,无错误信息即表示授权成功。

注意事项

  • 执行此命令需要具备
    workspace_admin
    workspace_admin
    security_admin
    security_admin
    角色,或者对目标对象拥有
    WITH GRANT OPTION
    WITH GRANT OPTION
    权限。
  • 遵循最小权限原则,仅授予用户完成工作所需的最低权限。
  • 授予角色(
    GRANT ROLE
    GRANT ROLE
    )是推荐的权限管理方式,便于批量管理和权限回收。
  • 使用
    WITH GRANT OPTION
    WITH GRANT OPTION
    时需谨慎,被授权用户可能将权限扩散给其他用户。
  • 可通过
    SHOW GRANTS TO USER user_name
    SHOW GRANTS TO USER user_name
    验证授权结果。
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询