Пользователи MySQL изменили свой IP-адрес. Какой лучший способ справиться с этим?

23

У меня есть несколько пользователей, которые подключаются к MySQL через VPN, поэтому у нас есть гранты по типу grant select on foo.* to user@ipaddress1и так далее.

На этой неделе IP-адрес, используемый в VPN, изменился на address2 , поэтому user@ipaddress1гранты больше не работают.

Какой лучший способ справиться с обновлением пользователя и предоставить информацию в MySQL, чтобы отразить это изменение?

Обратите внимание, что разрешения представляют собой серьезную путаницу, поскольку некоторые пользователи исключаются из определенных столбцов в определенных таблицах, поэтому мы должны были предоставлять разрешения вокруг исключенных объектов.

CJC
источник

Ответы:

3

Просто обновите поле хоста в таблице вашего пользователя:

update mysql.users set Host = newIP where Host = oldIP;
flush privileges;
JDW
источник
Пробовал это: не работает, если есть гранты.
CJC
ОН ... хороший звонок. Виноват.
JDW
Это должно работать нормально, вам просто нужно выполнить flush privilegesинструкцию после того, как вы вручную манипулируете любой из таблиц привилегий.
Зоредаче
2

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

GRANT ALL ... user_name@'192.168.1.%'
Тим Бригам
источник
Это не помогает существующим пользователям с определенным IP. Нам все еще придется переделать все гранты, даже если мы используем диапазон в следующий раз.
CJC
Вы можете обновить существующих пользователей с тем же синтаксисом.
Тим Бригам