Предоставление привилегий пользователю 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

Другие вопросы по тегам