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