MySQL - DROP ROLE 語句



MySQL DROP ROLE 語句

您可以使用 DROP ROLE 語句刪除一個或多個現有的角色。要執行此語句,您需要擁有 CREATE USER 或 DROP ROLE 許可權。

語法

以下是 DROP USER 語句的語法:

DROP ROLE [IF EXISTS] role_name ...

其中,role_name 是您需要刪除的 MySQL 使用者的名稱。

示例

假設我們使用 CREATE ROLE 語句建立了一個名為 TestRole_ReadOnly 的角色,如下所示:

CREATE ROLE 'TestRole_ReadOnly';

現在,讓我們使用 GRANT 語句向建立的角色授予只讀許可權,如下所示:

GRANT SELECT ON * . * TO 'TestRole_ReadOnly';

然後,您可以按如下方式將建立的角色授予使用者:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

GRANT 'TestRole_ReadOnly' TO 'newuser'@'localhost';

您可以使用以下查詢檢索授予所有使用者的角色列表:

SELECT * FROM mysql.role_edges;

輸出

以下是上述查詢的輸出:

FROM_HOST FROM_USER TO_HOST TO_USER WITH_ADMIN_OPTION
% TestRole_ReadOnly localhost newuser N

以下查詢刪除了上面建立的角色:

DROP ROLE 'TestRole_ReadOnly';

由於我們已刪除了建立的角色,如果您再次驗證角色列表,您將獲得一個空集,如下所示:

SELECT * FROM mysql.role_edges;
Empty set (0.00 sec)

刪除多個角色

您也可以使用 DROP ROLE 語句一次刪除多個角色。如果我們建立了兩個角色,如下所示:

CREATE ROLE 'MyAdmin', 'MyDeveloper';

以下查詢一次刪除上面建立的角色:

DROP ROLE 'MyAdmin', 'MyDeveloper';

IF EXISTS 子句

如果您嘗試刪除不存在的 MySQL 角色,將生成錯誤,如下所示:

DROP ROLE demo@localhost;
ERROR 1396 (HY000): Operation DROP ROLE failed for 'demo'@'localhost'

如果您與 DROP ROLE 語句一起使用 IF EXISTS 子句,如下所示,則將刪除指定的角色,如果不存在具有給定名稱的角色,則將忽略該查詢。

DROP ROLE IF EXISTS demo;
廣告