GRANT TO USER

功能概述

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

语法

授予对象权限给用户

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

授予角色给用户

GRANT ROLE role_name TO USER user_name;

权限类型说明

-- 工作空间级别:创建对象 workspacePrivileges ::= CREATE { SCHEMA | VCLUSTER } -- 工作空间下对象权限 workspaceObjectPrivileges ::= -- ROLE、SCHEMA 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 | FUNCTION | VOLUME } | ALL -- Schema 下对象权限 schemaObjectPrivileges ::= -- TABLE ALTER | DROP | SELECT | INSERT | READ METADATA | ALL -- VIEW / MATERIALIZED VIEW ALTER | DROP | SELECT | ALL -- Function 对象权限 functionPrivileges ::= ALTER FUNCTION | DROP FUNCTION | USE FUNCTION | READ METADATA | ALL [PRIVILEGES] -- Volume 对象权限 volumePrivileges ::= ALTER VOLUME | DROP VOLUME | READ VOLUME | WRITE VOLUME | READ METADATA | ALL [PRIVILEGES]

Function 和 Volume 都是 Schema 子对象。创建权限授予在父 Schema 上;使用、修改和删除权限授予在具体对象上。Function/Volume 权限名中的对象后缀可以省略,但建议使用上面列出的完整权限名。

参数说明

参数必填说明
workspace_name
workspace_name
是(授予工作空间权限时)工作空间名称
workspace_object_name
workspace_object_name
是(授予工作空间对象权限时)工作空间下对象名称(Role、Schema、VCluster)
schema_name
schema_name
是(授予 Schema 权限时)Schema 名称
schema_object_name
schema_object_name
是(授予 Schema 对象权限时)对象完整名称,格式为
schema_name.object_name
schema_name.object_name
functionPrivileges
functionPrivileges
是(授予 Function 权限时)Function 对象权限,例如
USE FUNCTION
USE FUNCTION
ALTER FUNCTION
ALTER FUNCTION
DROP FUNCTION
DROP FUNCTION
volumePrivileges
volumePrivileges
是(授予 Volume 权限时)Volume 对象权限,例如
READ VOLUME
READ VOLUME
WRITE VOLUME
WRITE VOLUME
DROP VOLUME
DROP VOLUME
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;

  7. 授予用户

    tester
    tester
    调用 Function
    semantic_model_test.image_to_text
    semantic_model_test.image_to_text
    的权限:

    GRANT USE FUNCTION ON FUNCTION semantic_model_test.image_to_text TO USER tester;

  8. 授予用户

    tester
    tester
    读取和写入 Volume
    semantic_model_test.shared_files
    semantic_model_test.shared_files
    的权限:

    GRANT READ VOLUME ON VOLUME semantic_model_test.shared_files TO USER tester; GRANT WRITE VOLUME ON VOLUME semantic_model_test.shared_files TO USER tester;

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

注意事项

  • 执行此命令需要具备
    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
    验证授权结果。
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询