2011-03-13 37 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'@'%';