MySQL GRANT для пользователя @ 'host' не работает должным образом - PullRequest
2 голосов
/ 21 сентября 2011

РЕДАКТИРОВАТЬ: я переустановил 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;

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

GRANT USAGE ON . для пользователя '@'% ', идентифицированного по паролю 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.

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

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

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

Есть идеи?

Ответы [ 2 ]

1 голос
/ 28 октября 2011

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

1 голос
/ 21 сентября 2011

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

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

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

...