全部產品
Search
文件中心

Lindorm:REVOKE

更新時間:Sep 19, 2024

REVOKE文法用於刪除指定使用者的某一項許可權。您可以通過SHOW PRIVILEGES語句查看所有使用者具備的許可權,再使用REVOKE語句刪除指定使用者不合適的許可權。

引擎與版本

REVOKE文法適用於寬表引擎和時序引擎。無版本限制。

文法

revoke_permission_statement ::=  REVOKE privilege_definition ON resource_definition FROM user_identifier
privilege_definition        ::=  ALL | ALL PRIVILEGE| READ | WRITE | ADMIN | TRASH | SYSTEM
resource_definition         ::=  GLOBAL | DATABASE identifier | SCHEMA identifier | TABLE identifier

使用說明

REVOKE語句是否可以執行成功,還取決於執行者自身擁有的許可權。

許可權(privilege_definition

共以下幾種許可權:

許可權

說明

ALL或ALL PRIVILEGE

刪除使用者具有的所有許可權,包括READ、WRITE、ADMIN和TRASH許可權。

READ

刪除使用者具有的“讀”許可權。

WRITE

刪除使用者具有的“寫”許可權。

ADMIN

刪除使用者具有的“管理員”許可權。

TRASH

刪除使用者具有的“刪除”許可權。

SYSTEM

刪除對於叢集層面的系統管理權限。包含GLOBAL ADMIN許可權。

許可權範圍(resource_definition)

寬表引擎和時序引擎對REVOKE語句可撤回許可權的資源範圍的支援情況如下:

許可權

寬表引擎

時序引擎

說明

GLOBAL

撤回全域所有資源的特定許可權。

DATABASE

撤回指定Database的某個許可權。作用等同於SCHEMA。

說明

寬表引擎2.5.3.3及以上版本支援DATABASE關鍵字。2.5.3.3之前版本僅支援SCHEMA關鍵字。

TABLE

✖️

撤回指定表的某個許可權。

許可權資源範圍的優先順序:GLOBAL > DATABASE(SCHEMA)> TABLE。

在使用DATABASE、SCHEMA或TABLE關鍵字時,需添加對應層級的對象名稱(identifier)。例如DATABASE defaultSCHEMA defaultTABLE test分別表示資料庫default和表test。

刪除對象(user_identifier

user_identifier為許可權刪除操作的使用者名稱。

樣本

刪除所有許可權

刪除使用者user1擁有的資料庫db1的全部許可權。

REVOKE ALL ON DATABASE db1 FROM user1;
-- 或者
REVOKE ALL ON SCHEMA db1 FROM user1;

刪除指定許可權

  • 刪除使用者user2對資料庫db2中的表table2所擁有的管理員權限。

    REVOKE ADMIN ON TABLE db2.table2 FROM user2;
  • 刪除使用者user3對錶table3所擁有的寫入權限。

    REVOKE WRITE ON TABLE table3 FROM user3; 
  • 刪除使用者user4所擁有的全域讀許可權。

    REVOKE READ ON GLOBAL FROM user4;