向 mysql 用户授予权限不起作用

Mik*_*ore 3 mysql user-permissions

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

CREATE USER test01@localhost IDENTIFIED BY 'test01';
Run Code Online (Sandbox Code Playgroud)

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

GRANT SELECT,INSERT,UPDATE,DELETE ON test_database.* TO 'test01'@'localhost';
Run Code Online (Sandbox Code Playgroud)

所有*_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)
Run Code Online (Sandbox Code Playgroud)

qua*_*nta 9

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

你从mysql.user表中检查过吗,是这样的:

mysql> select * from mysql.user where user='test01' and host='localhost'\G
Run Code Online (Sandbox Code Playgroud)

如果是这样,您检查的位置不对。该表中的所有权限都是全局权限,使用on *.* 进行分配。

当您在数据库级别授予时on test_database.*,您必须签入mysql.db表:

select * from mysql.db where user='test01' and host='localhost' and db='test_database'\G
Run Code Online (Sandbox Code Playgroud)

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