2017-07-07 59 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'@'%';