Предоставление привилегий пользователю mysql не работает
Я вошел в MySQL как root. Я могу добавить пользователя как это:
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 ответ
Решение
Все столбцы *_priv имеют значение N для пользователя test01.
Вы проверили это из mysql.user
таблица, как то так:
mysql> select * from mysql.user where user='test01' and host='localhost'\G
Если это так, вы проверяете не в том месте. Все привилегии в этой таблице являются глобальными привилегиями, она назначается с помощью on *. *.
Пока вы предоставляете на уровне базы данных 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