У меня есть несколько пользователей, которые подключаются к MySQL через VPN, поэтому у нас есть гранты в виде grant select on foo.* to user@ipaddress1
и так далее.
На этой неделе IP, используемый в VPN, изменился на Адрес 2, так user@ipaddress1
гранты больше не работают.
Как лучше всего обрабатывать обновление пользователя и предоставлять информацию в MySQL, чтобы отразить это изменение?
Обратите внимание, что гранты представляют собой серьезный беспорядок, потому что некоторые пользователи исключены из определенных столбцов в определенных таблицах, поэтому нам пришлось делать гранты для исключенных объектов.
По-видимому, правильный способ сделать это:
RENAME USER user@ipaddress1 TO user@ipaddress2;
http://dev.mysql.com/doc/refman/5.0/en/rename-user.html
Это касается всех грантов.
Просто обновите поле хоста в таблице пользователя:
update mysql.users set Host = newIP where Host = oldIP;
flush privileges;
Если у вас есть выделенная подсеть для пользователей VPN, следующий синтаксис работает хорошо.
GRANT ALL ... user_name@'192.168.1.%'