Database

[MySQL] 일반 사용자 비밀번호 변경

비번변경 2023. 7. 25. 16:52

개요

DBA로부터 애플리케이션 서비스용 MySQL 계정을 발급받았는데 초기 비밀번호가 임의로 생성한 비밀번호인지 기억하기 힘든 조합으로 되어있다. 비밀번호를 변경해서 사용해도 된다고 하니 직접 변경을 해보려고 한다.

 

MySQL 버전은 8.0.32이다.

 

SET PASSWORD

SET PASSWORD문은 MySQL 사용자 계정에 암호를 할당한다. 암호는 명시적으로 지정하거나 MySQL에 의해 임의로 생성할 수 있다. 비밀번호를 변경할 때 REPLACE절을 사용해 현재 암호를 확인하거나 RETAIN절로 보조 암호를 관리할 수 도 있다.

SET PASSWORD [FOR user] auth_option
    [REPLACE 'current_auth_string']
    [RETAIN CURRENT PASSWORD]

auth_option: {
    = 'auth_string'
  | TO RANDOM
}

공식 문서의 문법 소개 부분이 좀 헷갈리게 되어 있는데 예시는 다음과 같다.

SET PASSWORD = 'auth_string'
;

SET PASSWORD = 'auth_string'
REPLACE 'current_auth_string'
;

SET PASSWORD FOR 'USERNAME' = 'auth_string'
RETAIN CURRENT PASSWORD
;

SET PASSWORD문보다 ALTER USER를 이용해 비밀번호를 지정하는 걸 더 권장한다고 하는데, 권한 문제로 잘 실행이 되지 않았다. 

 

 

방법

MySQL에 익명으로 접속하지 않은 모든 사용자는 본인의 암호를 변경할 수 있다. 현재 서버에 접속한 계정을 확인할 때는 CURRENT_USER() 또는 USER() 함수를 사용한다.

 

1. 접속 계정 확인

SELECT CURRENT_USER();
SELECT USER();

 

2. SET PASSWORD 문으로 비밀번호 지정

SET PASSWORD = '<NEW_PASSWORD>'
;

이상이 없으면 Query OK 라는 메세지를 확인할 수 있다.

 

 

3. 접속 확인

mysql -h <SERVER> -P <PORT> -u <USER> -p <PASSWORD>

 

 

참고 문서

https://dev.mysql.com/doc/refman/8.0/en/set-password.html

https://hoing.io/archives/248

 

728x90