我以 root 身份登录到 mysql。我可以像这样添加用户:
CREATE USER test01@localhost IDENTIFIED BY 'test01';
当我尝试向用户授予权限时test01
,似乎什么也没有发生:
GRANT SELECT,INSERT,UPDATE,DELETE ON test_database.* TO 'test01'@'localhost';
所有列均针对用户*_priv
进行设置。N
test01
你知道我在这里做错了什么吗?谢谢!
以下是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