一、使用 REVOKE 語句撤銷授權
為了收回某個用戶的權限,可使用 REVOKE 語句。除了要用 FROM 替換 TO 并且沒 有 IDENTIFIED BY 或 WITH GRANT OPTION 子句外。
語法:REVOKE privileges (columns) ON what FROM user; user
部分必須頁你想要取消其權限的用戶的原始 GRANT 語句的 user 部分相匹配。
Privileges 部分不需要匹配,你可用 GRANT 語句授權,然后用 REVOKE 語句取消啟 動的一部分。
REVOKE 語句只刪除權限,不刪除用戶。用戶的項仍然保留在 user 表中,即使你去 笑了改用戶的所有權限也是如此。這意味著該用戶仍然可以連接到服務其上。要刪除整個 用
戶,必須用 DELETE 語句將該用戶的記錄從 user 表中直接刪除。要想刪除整個用戶, 必須直接將該用戶的記錄從 user 表中直接刪除。
例如,如果你為一個數據庫授權,如果需要在 mysql.db 表中創建一個條目。 mysql>GRANT ALL ON sample.* TO kite@localhost IDENTIFIED BY "ruby";
當所有為數據庫的授權用 REVOKE 刪除時,這個條目被刪除。
mysql>REVOKE ALL ON sample.* FROM kite@localhost;
但是,boris@localhost 用戶的條目仍舊留在 user 表中,你可以查看:
mysql>SELECT * FROM mysql.user;
二、直接修改授權表撤銷用戶或授權
顯而易見,可以直接在授權表中給用戶撤銷授權,有時,這是唯一的方法,如撤銷 一個用戶。記住在你直接修改授權表時,你將通知服務器重載授權表,否則他不知道你的
改變。你可以執行一個 mysqladmin flush-privileges 或 mysqladmin reload 命令和 FLUSH PRIVILEGES 語句強迫一個重載。如果你忘記做這個,你會疑惑為什么服務器不做
你想做 的事情。
在上節最后一個例子中,可以這樣撤銷用戶:
mysql>DELETE FROM mysql.user ->WHERE User=” kite” AND Host=” localhost”;
mysql>FLUSH PRIVILEGES; mysql>SELECT * FROM mysql.user;
DELETE 語句刪除該用戶的項,FLUSH 語句告訴服務器重新假造授權表(但是用 GRANT 或 REVOKE 語句,而不是直接修改授權表時,這些表將自動重新加載)。
而REVOKE ALL ON sample.* FROM boris@localhost 對應的,可以這樣直接修改授 權表:
mysql>DELETE FROM mysql.db ->WHERE User=” boris” AND Host=” localhost” AND db=”sample”;
mysql>FLUSH PRIVILEGES;
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com