[英]Revoke privileges from user in mySQL
对于我们使用以下语句在mySQL中创建的每个新用户
CREATE USER newuser@localhost IDENTIFIED BY 'password';
“ SHOW GRANTS”仅显示“ USAGE ON *。*”特权。
但是用户可以在“ 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'
我只是不希望新用户访问test和information_schema数据库。
http://dev.mysql.com/doc/refman/5.6/en/default-privileges.html
默认情况下,
mysql.db
表包含允许任何用户访问test
数据库和其他名称以test_
开头的其他数据库的test_
。 (...)这意味着即使没有特权的帐户也可以使用此类数据库。 如果要删除任何用户对测试数据库的访问权限,请执行以下操作:mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%'; mysql> FLUSH PRIVILEGES;
(...)通过前面的更改,只有具有全局数据库特权或为测试数据库明确授予的特权的用户才能使用它。
information_schema
数据库是应要求即时建立的只读伪数据库。 用户将始终可以查询该数据库,但是该数据库仅显示他们已经可以访问的条目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.