2017-07-07 108 views
0

我試圖刪除數據庫上用戶的所有權限。撤銷數據庫的mysql權限

REVOKE ALL PRIVILEGES ON database.* FROM 'user'@'%'; 

這只是給出了一個錯誤說:

ERROR 1141 (42000): There is no such grant defined for user 'user' on host '%' 

運行查詢時,我以root身份登錄的用戶。而運行顯示贈款用戶查詢顯示,用戶對所有數據庫從節目授權查詢

輸出權限:

GRANT USAGE ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'xxxxxx' 
+0

你可以包含'SHOW GRANTS for'user'@'%''> –

+0

@AlexTartan增加顯示撥款的輸出 –

+0

'*。*'和'database。*'是兩個不同的東西。刪除'*。*'的授權,如果需要,爲其他數據庫添加授權 –

回答

1

REVOKE語句必須匹配頒發的助學金。如果授予發行到*.*,您也只能撤銷*.*

因爲SHOW GRANTS for 'user'@'%'顯示了一行:

GRANT USAGE ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'xxxxxx' 

您需要取消

這應該工作:

REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'%'; 

database.*表示在 「數據庫」 數據庫
*.*表示所有數據庫中

0

您可以執行以下查詢所有表中的所有表,

1 )REVOKE ALTER ALTER ROUTINE CREATE CREATE ROUTINE CREATE TABLESPACE CREATE TEMPORARY TABLES CREATE USER CREATE VIEW DELETE DROP EVENT EXECUTE FILE INDEX I鎖定表,進程,參考,重新載入,複製客戶端,複製從屬,選擇,顯示數據庫,顯示視圖,關閉,超級,觸發器,更新 FROM'user'@'%';

OR

取消所有權限ON FROM'user'@'%';

2)REVOKE授予選項 FROM'user'@'%';