Setzen Sie das MySQL-Benutzerkennwort mithilfe eines gehashten Kennworts zurück

Setzen Sie das MySQL-Benutzerkennwort mithilfe eines gehashten Kennworts zurück

Auf einem MySQL-Server ist mir ein Fehler unterlaufen und ich habe das Passwort des falschen Benutzers geändert, und zwar folgendermaßen:

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

Vor dem Ändern des Passworts habe ich „SHOW GRANTS FOR username@'10.1.%'“ verwendet und den angezeigten Passwort-Hash notiert. Wie kann ich das gehashte Passwort verwenden, um das aktuelle Passwort auf das Original zurückzusetzen? Ich habe versucht, denselben „SET PASSWORD“-Befehl mit dem Hash wie bei „newpassword“ zu verwenden, aber es sieht so aus, als ob dadurch der Hash buchstäblich zum neuen Passwort geworden wäre.

Antwort1

Es sieht so aus, als ob Sie MySQL 5.6 verwenden. Hier ist der Prozess in dieser Version:

Ursprüngliches Passwort beim Anlegen des Benutzers

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

Ausgabe:

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

Passwort ändern

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

Ausgabe:

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

Passwort zurücksetzen

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

Ausgabe:

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

Können Sie überprüfen, ob Sie das gesamte gehashte Passwort verwenden? Ein Fehler, den ich gesehen habe, ist das Weglassen des führenden Sternchens.

Antwort2

Wenn SieHandbuch von MySQLSie werden sehen, dass Sie den folgenden Befehl verwenden können:

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

verwandte Informationen