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;

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