在本教學中,您將學習如何使用MySQL中的REVOKE
語句從MySQL帳戶中復原許可權。
我們強烈建議您遵循以下教學,以更好地了解MySQL REVOKE
語句的工作原理:
要從使用者帳戶復原許可權,您可以使用MySQL REVOKE
語句。MySQL允許您從使用者復原一個或多個特權或所有許可權。
以下說明從使用者復原指定許可權的語法:
REVOKE privilege_type [(column_list)]
[, priv_type [(column_list)]]...
ON [object_type] privilege_level
FROM user [, user]...
我們來詳細看看MySQL REVOKE
語句使用 -
REVOKE
關鍵字之後指定要從使用者復原的許可權列表,需要用逗號分隔許可權。ON
子句中指定要復原許可權的許可權級別。FROM
子句中指定要復原的許可權的使用者帳戶請注意,要從使用者帳戶復原許可權,您必須具有
GRANT OPTION
許可權和要復原的許可權。
要撤消使用者的所有許可權,請使用以下REVOKE
語句:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user]…
要執行REVOKE ALL
語句,必須具有全域性CREATE USER
許可權或mysql
資料庫的UPDATE
許可權。
要復原代理使用者,請使用REVOKE PROXY
命令,如下所示:
REVOKE PROXY ON user FROM user [, user]...
代理使用者是MySQL中有效的使用者,可以模擬(假冒)另一個使用者,因此代理使用者擁有其模擬的使用者的所有許可權。
在撤消使用者許可權之前,最好通過使用SHOW GRANTS
語句來檢查使用者擁有的許可權的情況,如下所示:
SHOW GRANTS FOR user;
假設rfc
使用者對範例資料庫(yiibaidb)具有SELECT,UPDATE和DELETE許可權。現在,如果要從rfc
使用者復原UPDATE
和DELETE
許可權,可以按如下方式執行:
首先,使用SHOW GRANTS
語句檢查使用者的許可權:
-- 檢視使用者的當前許可權
SHOW GRANTS FOR rfc;
-- 授予使用者許可權
GRANT SELECT, UPDATE, DELETE ON `yiibaidb`.* TO 'rfc'@'%';
執行上面查詢語句,得到以下結果 -
+-----------------------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'rfc'@'%' |
| GRANT SELECT, UPDATE, DELETE ON `yiibaidb`.* TO 'rfc'@'%' |
+-----------------------------------------------------------+
請注意,確實按照授予使用者許可權的教學文章學習並操作後,您可以建立rfc
帳戶並向其授予SELECT
,UPDATE
和DELETE
特權,如下所示:
-- 建立使用者
CREATE USER IF NOT EXISTS rfc IDENTIFIED BY 'newpasswd';
-- 授予使用者許可權
GRANT SELECT, UPDATE, DELETE ON yiibaidb.* TO rfc;
其次,從rfc
使用者復原UPDATE
和DELETE
許可權,參考以下語句:
REVOKE UPDATE, DELETE ON yiibaidb.* FROM rfc;
第三,可以使用SHOW GRANTS
命令再次檢視rfc
使用者的許可權。
-- 檢視使用者許可權
SHOW GRANTS FOR 'rfc'@'%';
-- 授予使用者許可權
GRANT SELECT ON `yiibaidb`.* TO 'rfc'@'%';
如果要復原rfc
使用者的所有許可權,請執行以下命令:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM rfc;
如果再次檢視rfc
使用者的許可權,您將看到rfc
使用者已經沒有了許可權。
-- 檢視使用者許可權
SHOW GRANTS FOR rfc;
GRANT USAGE ON *.* TO 'rfc'@'%';
請注意,使用
USAGE
許可權意味著MySQL中沒有特權。
MySQL REVOKE
語句的生效時間取決於許可權級別,如下所示:
USE
語句之後生效。在本教學中,您學習了如何使用MySQL REVOKE
語句來復原MySQL使用者的許可權。