授予 mysql 用户权限不起作用

授予 mysql 用户权限不起作用

我以 root 身份登录到 mysql。我可以像这样添加用户:

CREATE USER test01@localhost IDENTIFIED BY 'test01';

当我尝试向用户授予权限时test01,似乎什么也没有发生:

GRANT SELECT,INSERT,UPDATE,DELETE ON test_database.* TO 'test01'@'localhost';

所有列均针对用户*_priv进行设置。Ntest01

你知道我在这里做错了什么吗?谢谢!

以下是SHOW GRANTS...

mysql> SHOW GRANTS FOR 'test01'@'localhost';
+--------------------------------------------------------------------------------------+
| Grants for test01@localhost                                                          |
+--------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test01'@'localhost' IDENTIFIED BY PASSWORD 'removed_hash' |
+--------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

答案1

对于 test01 用户,所有 *_priv 列都设置为 N。

您是否从表中检查过mysql.user,如下所示:

mysql> select * from mysql.user where user='test01' and host='localhost'\G

如果是这样,那您签到的地方不对。此表中的所有权限都是全球的特权,它是通过使用分配在 *。*

当你授予数据库级别on test_database.*,您必须检查mysql.db表格:

select * from mysql.db where user='test01' and host='localhost' and db='test_database'\G

阅读更多:http://dev.mysql.com/doc/refman/5.0/en/grant.html

相关内容