2011-03-13 36 views
7

所有用戶:http://dev.mysql.com/doc/refman/5.0/en/drop-database.html取消所有權限,用於在MySQL數據庫

...當數據庫被刪除,數據庫用戶的權限是不會被自動刪除。

所以問題就變成了,你如何撤銷MySQL DB上所有用戶的所有權限?我想這很簡單,但我很驚訝,我無法在任何地方找到它。

+1

您可以使用['revoke'](http://dev.mysql.com/doc /refman/5.1/en/revoke.html)命令。 – ryanprayogo 2011-03-13 04:16:51

回答

10

可以撤銷針對特定用戶的所有特權與this syntax

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ... 
FLUSH PRIVILEGES; 

其丟棄所有的全球數據庫,表,列和程序權限指定用戶或用戶

不過,不知道是否有辦法一次爲所有用戶做到這一點。

+2

重要的是要注意,5.5即使用戶沒有授予選項,至少需要「,授予選項」 – CrackerJack9 2013-12-01 19:43:55

-2
USE mysql; 
DELETE * FROM user; 
FLUSH PRIVILEGES; 

...將刪除所有用戶,包括根,無論你用的連接,所以你可能要添加一個WHERE子句。

+0

這有點多。我確實希望它爲* all *用戶,但不是所有數據庫中的所有用戶! – mlissner 2011-03-13 05:25:13

+0

這應該只是「從用戶刪除;」 - 沒有*需要。 – rrauenza 2015-05-08 17:55:31

+1

這裏不需要FLUSH PRIVILEGES。 只有在早期(mysql 3.x),當你直接操縱表。 – 2015-06-02 11:24:23

0

我想你可以這樣做:

REVOKE ALL PRIVILEGES FROM '%'@'%'; 
FLUSH PRIVILEGES; 

(不要直接修改MySQL表)

+0

需要「授予選項」,至少5.5取消所有權限 – CrackerJack9 2013-12-01 19:44:45

0
REVOKE ALL PRIVILEGES FROM '%'@'%'; 

,我想這將刪除所有的權限,以上可能是危險的一切用戶包括root

其修改爲:

REVOKE ALL PRIVILEGES FROM 'user'@'localhost'; 

REVOKE ALL PRIVILEGES FROM 'user'@'%'; 

之前執行

+1

需要「授予選項」,至少5.5取消所有權限 – CrackerJack9 2013-12-01 19:44:26

+0

這是非常非常危險的,不建議。 – MontyPython 2017-08-17 18:53:16

3
REVOKE ALL PRIVILEGES ON *.* FROM '<user_name>'@'localhost'; 
REVOKE ALL PRIVILEGES ON *.* FROM '<user_name>'@'%'; 

例如:

REVOKE ALL PRIVILEGES ON *.* FROM 'jeffrey'@'localhost'; 
REVOKE ALL PRIVILEGES ON *.* FROM 'jeffrey'@'%';