REVOKE

功能概述

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

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

REVOKE 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 | dynamicTablePrivileges ON DYNAMIC TABLE schema_object_name | semanticViewPrivileges ON SEMANTIC VIEW schema_object_name | functionPrivileges ON FUNCTION schema_object_name | volumePrivileges ON VOLUME 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 FUNCTION
CREATE FUNCTION
、
CREATE VOLUME
CREATE VOLUME
、
CREATE SEMANTIC VIEW
CREATE SEMANTIC VIEW
、
CREATE DYNAMIC TABLE
CREATE DYNAMIC TABLE
schemaObjectPrivileges
schemaObjectPrivileges
对 Schema 下对象的修改、删除、查询等权限
ALTER
ALTER
、
DROP
DROP
、
SELECT
SELECT
、
INSERT
INSERT
、
READ METADATA
READ METADATA
、
ALL
ALL
dynamicTablePrivileges
dynamicTablePrivileges
对动态表的查询、修改、删除等权限
SELECT DYNAMIC TABLE
SELECT DYNAMIC TABLE
、
ALTER DYNAMIC TABLE
ALTER DYNAMIC TABLE
、
DROP DYNAMIC TABLE
DROP DYNAMIC TABLE
、
UNDROP DYNAMIC TABLE
UNDROP DYNAMIC TABLE
、
RESTORE DYNAMIC TABLE
RESTORE DYNAMIC TABLE
、
INSERT
INSERT
、
UPDATE
UPDATE
、
DELETE
DELETE
、
TRUNCATE
TRUNCATE
、
READ METADATA
READ METADATA
、
ALL PRIVILEGES
ALL PRIVILEGES
semanticViewPrivileges
semanticViewPrivileges
对语义视图的查询、修改和删除权限
SELECT
SELECT
、
ALTER
ALTER
、
DROP
DROP
、
ALL PRIVILEGES
ALL PRIVILEGES
functionPrivileges
functionPrivileges
对 Function 的使用、修改和删除权限
USE FUNCTION
USE FUNCTION
、
ALTER FUNCTION
ALTER FUNCTION
、
DROP FUNCTION
DROP FUNCTION
、
READ METADATA
READ METADATA
、
ALL PRIVILEGES
ALL PRIVILEGES
volumePrivileges
volumePrivileges
对 Volume 的读写、修改和删除权限
READ VOLUME
READ VOLUME
、
WRITE VOLUME
WRITE VOLUME
、
ALTER VOLUME
ALTER VOLUME
、
DROP VOLUME
DROP VOLUME
、
READ METADATA
READ METADATA
、
ALL PRIVILEGES
ALL PRIVILEGES

Function 和 Volume 都是 Schema 子对象。

CREATE FUNCTION
CREATE FUNCTION
和
CREATE VOLUME
CREATE VOLUME
从父 Schema 回收,其余权限从具体对象回收。

使用示例

  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
    在 Volume
    public.sales_data
    public.sales_data
    上的读取权限:

    REVOKE READ VOLUME ON VOLUME public.sales_data FROM ROLE reporting_role;

  5. 回收角色

    admin_role
    admin_role
    在 Function
    public.order_summary
    public.order_summary
    上的修改和删除权限:

    REVOKE ALTER FUNCTION ON FUNCTION public.order_summary FROM ROLE admin_role; REVOKE DROP FUNCTION ON FUNCTION public.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;

  8. 回收角色

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

    REVOKE SELECT ON SEMANTIC VIEW public.my_semantic_view FROM ROLE my_role;

  9. 批量回收角色

    my_role
    my_role
    查询 Schema
    public
    public
    下所有语义视图的权限:

    REVOKE SELECT ON ALL SEMANTIC VIEWS IN SCHEMA public FROM ROLE my_role;

  10. 回收角色

    my_role
    my_role
    对指定动态表的查询权限:

    REVOKE SELECT ON DYNAMIC TABLE public.my_dynamic_table FROM ROLE my_role;

  11. 回收角色

    my_role
    my_role
    在
    public
    public
    Schema 下创建动态表的权限:

    REVOKE CREATE DYNAMIC TABLE ON SCHEMA public FROM ROLE my_role;

  12. 批量回收角色

    my_role
    my_role
    查询 Schema
    public
    public
    下所有动态表的权限:

    REVOKE SELECT ON ALL DYNAMIC TABLES IN SCHEMA public FROM ROLE my_role;

注意事项

  • 执行此命令需要具备
    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;

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