REVOKE

功能概述

回收角色或用户已被授予的权限。通过 REVOKE 语句,可以对工作空间、工作空间对象、Schema 和 Schema 对象等各级别的权限进行回收。

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

REVOKE 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 FROM { ROLE role_name | USER user_name };

权限类型说明

权限类型说明示例
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 下创建对象的权限
CREATE TABLE
CREATE TABLE
CREATE VIEW
CREATE VIEW
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW
schemaObjectPrivileges
schemaObjectPrivileges
对 Schema 下对象的修改、删除、查询等权限
ALTER
ALTER
DROP
DROP
SELECT
SELECT
INSERT
INSERT
READ METADATA
READ METADATA
ALL
ALL

使用示例

  1. 回收角色

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

    REVOKE CREATE VCLUSTER ON WORKSPACE lakehouse_public FROM ROLE simple_role;

  2. 回收角色

    simple_role
    simple_role
    在名为
    default
    default
    的 VCLUSTER 上的
    ALTER
    ALTER
    权限:

    REVOKE ALTER VCLUSTER ON VCLUSTER default FROM ROLE simple_role;

  3. 回收角色

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

    REVOKE CREATE VIEW, CREATE TABLE ON SCHEMA public FROM ROLE uat_demo;

  4. 回收角色

    reporting_role
    reporting_role
    在名为
    sales_data
    sales_data
    的 DATALAKE 上的
    READ METADATA
    READ METADATA
    权限:

    REVOKE READ METADATA ON DATALAKE sales_data FROM ROLE reporting_role;

  5. 回收角色

    admin_role
    admin_role
    在名为
    order_summary
    order_summary
    的 FUNCTION 上的
    ALTER
    ALTER
    DROP
    DROP
    权限:

    REVOKE ALTER, DROP ON FUNCTION order_summary FROM ROLE admin_role;

  6. 回收角色

    analyst_role
    analyst_role
    public
    public
    Schema 下名为
    customer_orders
    customer_orders
    的表上的
    SELECT
    SELECT
    INSERT
    INSERT
    权限:

    REVOKE SELECT, INSERT ON TABLE public.customer_orders FROM ROLE analyst_role;

  7. 回收用户

    tester
    tester
    的角色
    test_readonly_role
    test_readonly_role

    REVOKE ROLE test_readonly_role FROM USER tester;

注意事项

  • 执行此命令需要具备
    workspace_admin
    workspace_admin
    security_admin
    security_admin
    角色。
  • 回收权限后,被回收方将立即失去对应资源的访问能力。
  • 可通过
    SHOW GRANTS TO ROLE role_name
    SHOW GRANTS TO ROLE role_name
    SHOW GRANTS TO USER user_name
    SHOW GRANTS TO USER user_name
    验证回收结果。

Instance Role 权限管理

LakeHouse 支持对 Instance Role 的跨工作空间权限进行细粒度回收,确保权限管控的灵活性和安全性。

语法说明

-- 回收 Instance Role 对工作空间的权限 REVOKE <privilege> ON WORKSPACE <workspace_name> FROM INSTANCE ROLE <role_name>; -- 回收 Instance Role 对表的权限 REVOKE <privilege> ON TABLE <workspace>.<schema>.<table> FROM INSTANCE ROLE <role_name>; -- 回收 Instance Role 对 Schema 的权限 REVOKE <privilege> ON DATABASE <workspace>.<schema> FROM INSTANCE ROLE <role_name>; -- 移除用户的 Instance Role 归属 REVOKE INSTANCE ROLE <role_name> FROM USER <user_name>;

示例

-- 回收工作空间全部权限 REVOKE ALL ON WORKSPACE ws1 FROM INSTANCE ROLE inst_role; -- 验证回收结果(预期无 ALL 权限) SHOW GRANTS TO INSTANCE ROLE inst_role; -- 回收单表权限 REVOKE ALL ON TABLE ws1.public.sales FROM INSTANCE ROLE inst_role; -- 移除用户的 Instance Role REVOKE INSTANCE ROLE inst_role FROM USER lh_engine_test_01;

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