Usuários do MySQL mudaram seu endereço IP. Qual é a melhor maneira de lidar com isso?

22

Eu tenho vários usuários que estão se conectando ao MySQL por meio de uma VPN, então temos concessões ao longo das linhas grant select on foo.* to user@ipaddress1e assim por diante.

Nesta semana, o IP usado na VPN mudou para endereço2 , portanto, as user@ipaddress1concessões não funcionam mais.

Qual é a melhor maneira de lidar com a atualização do usuário e conceder informações no MySQL para refletir essa alteração?

Observe que as concessões são uma bagunça séria, porque alguns usuários são excluídos de colunas específicas em tabelas específicas, portanto, tivemos que fazer concessões em torno dos objetos excluídos.

cjc
fonte

Respostas:

3

Basta atualizar o campo host na tabela do seu usuário:

update mysql.users set Host = newIP where Host = oldIP;
flush privileges;
jdw
fonte
Tentei isso: não funciona se houver subsídios.
CJC
OH ... boa ligação. Minha culpa.
JDW
Isso deve funcionar bem, você só precisa executar a flush privilegesinstrução depois de manipular manualmente qualquer uma das tabelas de privilégios.
Zoredache
2

Se você possui uma sub-rede dedicada para os usuários da VPN, a seguinte sintaxe funciona bem.

GRANT ALL ... user_name@'192.168.1.%'
Tim Brigham
fonte
Isso não ajuda com os usuários existentes em um IP específico. Ainda teríamos que refazer todas as subvenções, mesmo se usarmos um intervalo da próxima vez.
CJC
Você pode atualizar os usuários existentes com a mesma sintaxe.
Tim Brigham