在mySQL中撤销用户的权限

在mySQL中撤销用户的权限,mysql,privileges,mysqladmin,mysqladministrator,Mysql,Privileges,Mysqladmin,Mysqladministrator,对于我们在mySQL中使用以下语句创建的每个新用户 CREATE USER newuser@localhost IDENTIFIED BY 'password'; “显示授权”仅显示“使用**”权限。 但是用户可以选择,插入,。。在“test”和“information_schema”数据库上,我无法使用下面给出的revoke语句撤销“test”上的这些特权 REVOKE ALL ON test.* FROM newuser@localhost; ERROR 1141 (42000) : Th

对于我们在mySQL中使用以下语句创建的每个新用户

CREATE USER newuser@localhost IDENTIFIED BY 'password';
“显示授权”仅显示“使用**”权限。

但是用户可以选择,插入,。。在“test”和“information_schema”数据库上,我无法使用下面给出的revoke语句撤销“test”上的这些特权

REVOKE ALL ON test.* FROM newuser@localhost;
ERROR 1141 (42000) : There is no such grant defined for user 'guest' on host 'localhost'
我只是不希望新用户访问测试和信息模式数据库。

默认情况下,
mysql.db
表包含允许用户访问的行
测试
数据库和具有以下名称的其他数据库的任何用户 从测试开始。(……)这意味着 这样的数据库甚至可以被那些没有其他权限的帐户使用 特权。如果要删除对测试数据库的任何用户访问, 按以下步骤进行:

mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';
mysql> FLUSH PRIVILEGES;
(……) 在前面的更改中,只有拥有全局数据库的用户 可以使用为测试数据库显式授予的一个或多个特权 使用它

information\u schema
数据库是根据请求动态构建的只读伪数据库。用户将始终能够查询此数据库,但它只显示他们已经有权访问的条目。

默认情况下,
mysql.db
表包含允许用户访问的行
测试
数据库和具有以下名称的其他数据库的任何用户 从测试开始。(……)这意味着 这样的数据库甚至可以被那些没有其他权限的帐户使用 特权。如果要删除对测试数据库的任何用户访问, 按以下步骤进行:

mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';
mysql> FLUSH PRIVILEGES;
(……) 在前面的更改中,只有拥有全局数据库的用户 可以使用为测试数据库显式授予的一个或多个特权 使用它


information\u schema
数据库是根据请求动态构建的只读伪数据库。用户将始终能够查询此数据库,但它只显示他们已经有权访问的条目。

删除用户并使用
GRANT再次创建该用户怎么样。。。在.
上而不是在.*.上?我尝试了“在数据库上授予使用权。*以newuser@localhost由“password”标识;但仍授予所有数据库,即新用户的“usage on**”,删除该用户并使用
GRANT再次创建该用户如何。。。在.
上而不是在.*.上?我尝试了“在数据库上授予使用权。*以newuser@localhost由“password”;“标识,但仍授予所有数据库,即新用户在*.*上的使用”