使用雜湊密碼重設 mysql 用戶密碼

使用雜湊密碼重設 mysql 用戶密碼

在mysql伺服器上,我犯了一個錯誤,更改了錯誤的使用者密碼,如下所示:

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

在更改密碼之前,我使用“SHOW GRANTS FOR username@'10.1.%'”並記下顯示的密碼雜湊。如何使用雜湊密碼將目前密碼重設為原始密碼?我嘗試使用相同的“SET PASSWORD”命令,將雜湊值設為“newpassword”,但看起來確實會使雜湊值成為新密碼。

答案1

看來您使用的是 MySQL 5.6。以下是該版本中的流程:

建立使用者時的原始密碼

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

輸出:

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

更改密碼

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

輸出:

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

恢復密碼

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

輸出:

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

您能檢查一下您是否使用了完整的雜湊密碼嗎?我見過的一個錯誤是不包括前導星號。

答案2

如果你檢查MySQL手冊你會看到你可以使用指令:

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

相關內容