해시된 비밀번호를 사용하여 mysql 사용자 비밀번호 재설정

해시된 비밀번호를 사용하여 mysql 사용자 비밀번호 재설정

mysql 서버에서 다음과 같이 실수를 해서 잘못된 사용자 비밀번호를 변경했습니다.

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

비밀번호를 변경하기 전에 "SHOW GRANTS FOR username@'10.1.%'"를 사용하고 표시된 비밀번호 해시를 기록했습니다. 해시된 비밀번호를 사용하여 현재 비밀번호를 원래 비밀번호로 재설정하려면 어떻게 해야 하나요? 해시를 'newpassword'로 사용하여 동일한 "SET PASSWORD" 명령을 사용해 보았지만 문자 그대로 해시를 새 비밀번호로 만든 것 같습니다.

답변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';

관련 정보