MySQL GRANT для пользователя @'host' не работает должным образом

РЕДАКТИРОВАТЬ: я переустановил MySQL, и это исправило сам. Понятия не имею, в чем проблема.


Я выполнил следующие команды в MySQL из командной строки:

1. REVOKE ALL PRIVILEGES ON MyDB.* FROM user@'%';
2. DROP USER user@'%";
3. GRANT INSERT,SELECT,DELETE,UPDATE ON MyDB.* TO user@'%' IDENTIFIED BY 'somepassword';
4. FLUSH PRIVILEGES;

Гранты для пользователя:

ГРАНТОВОЕ ИСПОЛЬЗОВАНИЕ НА . to 'user' @ '%' ИДЕНТИФИЦИРОВАНО ПО ПАРОЛЮ GRANT SELECT,INSERT,UPDATE,DELETE ON 'MyDB'.* TO 'user'@'%'

Но затем я получаю следующее сообщение об ошибке, когда пытаюсь сделать обновление.

UPDATE command denied to user 'user'@'somehost' for table 'sometable'

Соответствующая информация:

SELECT, INSERT и DELETE все работают правильно.

Я использую C# с Connector / NET

'somehost' находится в той же сети, что и сервер (другой компьютер).

'sometable' находится в MyDB.

Если я войду на сервер с именем пользователя на хост-машине, запросы на обновление будут работать нормально.

РЕДАКТИРОВАТЬ:

Если я предоставлю UPDATE,SELECT,INSERT,DELETE для user@'somehost.net', запросы UPDATE будут работать без проблем.

Есть идеи?

2 ответа

Решение

Переустановка исправила проблему. Не уверен, в чем проблема.

После удаления всех грантов, сначала вы должны дать пользователю право на использование.

GRANT USAGE on MyDB.* to 'user'@'localhost'

Привилегия использования сообщает серверу, что этому пользователю разрешено использовать MySQL

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