Redefinir a senha do usuário mysql usando senha com hash

Redefinir a senha do usuário mysql usando senha com hash

Em um servidor mysql, cometi um erro e alterei a senha do usuário errado, assim:

SET PASSWORD FOR username@'10.1.%' = PASSWORD('newpassword');

Antes de alterar a senha, usei "SHOW GRANTS FOR username@'10.1.%'" e anotei o hash da senha exibido. Como posso usar a senha com hash para redefinir a senha atual para a original? Tentei usar o mesmo comando "SET PASSWORD" com o hash como 'newpassword', mas parece que isso literalmente transformou o hash na nova senha.

Responder1

Parece que você está usando o MySQL 5.6. Aqui está o processo nessa versão:

Senha original ao criar usuário

create user username@'10.1.%' identified by 'password';
show grants for username@'10.1.%';

saída:

GRANT USAGE ON *.* TO 'username'@'10.1.%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'

Alterando senha

set password for username@'10.1.%' = PASSWORD('newpassword');
show grants for username@'10.1.%';

saída:

GRANT USAGE ON *.* TO 'username'@'10.1.%' IDENTIFIED BY PASSWORD '*FE4F2D624C07AAEBB979DA5C980D0250C37D8F63'

Revertendo senha

set password for username@'10.1.%' = '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19';
show grants for username@'10.1.%';

saída:

GRANT USAGE ON *.* TO 'username'@'10.1.%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'

Você pode verificar se está usando toda a senha com hash? Um erro que vi foi não incluir o asterisco inicial.

Responder2

Se você verificarmanual do MySQLvocê verá que pode usar o comando:

SET PASSWORD FOR username@'10.1.%' = 'hashed_password';

informação relacionada