功能

本条命令用于回收指定角色的权限。通过使用 REVOKE 语句,可以对不同级别的权限进行回收,包括 workspace、workspace 对象、schema 和 schema 对象等级别。

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

REVOKE [workspacePrivileges | workspaceObjectPrivileges | schemaPrivileges | schemaObjectPrivileges]
ON [WORKSPACE | {ROLE | SCHEMA | VCLUSTER | DATALAKE | FUNCTION | workspace_object_name | SCHEMA | {TABLE | VIEW | MATERIALIZED VIEW} schema_object_name]
FROM ROLE role_name;

参数说明

  1. workspacePrivileges: 在 workspace 下创建对象的权限,例如 CREATE SCHEMACREATE VCLUSTER

  2. workspaceObjectPrivileges: 在 workspace 下对象的修改和查看元数据权限,例如 ALTERDROPREAD METADATAALL [PRIVILEGES]

  3. schemaPrivileges: 在 schema 下创建对象的权限,例如 CREATE TABLECREATE VIEWCREATE MATERIALIZED VIEW

  4. schemaObjectPrivileges: 在 schema 下对象的修改、删除、查询等权限,例如 ALTERDROPSELECTINSERTREAD METADATAALL

示例

  1. 回收角色 simple_rolelakehouse_public workspace 下创建 VIRTUAL CLUSTER 的权限:

    REVOKE CREATE VCLUSTER ON WORKSPACE lakehouse_public FROM ROLE simple_role;
  2. 回收角色 simple_role 在名为 defaultVIRTUAL CLUSTER 上的 ALTER 权限:

    REVOKE ALTER VCLUSTER ON VCLUSTER default FROM ROLE simple_role;
  3. 回收角色 uat_demopublic schema 下创建表和视图的权限:

    REVOKE CREATE VIEW, CREATE TABLE ON SCHEMA public FROM ROLE uat_demo;
  4. 回收角色 reporting_role 在名为 sales_dataDATALAKE 上的 READ METADATA 权限:

    REVOKE READ METADATA ON DATALAKE sales_data FROM ROLE reporting_role;
  5. 回收角色 admin_role 在名为 order_summaryFUNCTION 上的 ALTERDROP 权限:

    REVOKE ALTER, DROP ON FUNCTION order_summary FROM ROLE admin_role;
  6. 回收角色 analyst_rolepublic schema 下名为 customer_ordersTABLE 上的 SELECTINSERT 权限:

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

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>;  

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;

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