반응형
RETAIN CURRENT PASSWORD는 MySQL에서 사용자 계정을 변경(예: ALTER USER)할 때, 기존 계정의 비밀번호를 그대로 유지하려는 의도를 명시적으로 표현하는 옵션입니다.
이 옵션은 인증 플러그인을 변경할 때 주로 사용되며, 플러그인 변경 시 MySQL이 기본적으로 기존 비밀번호를 새로운 인증 플러그인에 맞는 방식으로 변환하도록 합니다.
사용 사례
- 기존 비밀번호 유지
인증 플러그인을 변경하더라도 비밀번호를 새로 설정하지 않고 기존 비밀번호를 그대로 사용하려는 경우. - ALTER USER 'username'@'host' IDENTIFIED WITH 'plugin_name' RETAIN CURRENT PASSWORD;
- 비밀번호 재설정 방지
비밀번호를 변경하지 않고 인증 플러그인만 변경하려는 경우 사용됩니다.
사용 예제
기존 플러그인을 변경하고 비밀번호 유지:
ALTER USER 'test_user'@'localhost' IDENTIFIED WITH caching_sha2_password RETAIN CURRENT PASSWORD;
- 여기서 test_user의 비밀번호는 변경되지 않으며, 새 플러그인(caching_sha2_password)에서 그대로 사용됩니다.
제약 조건
- 플러그인 변경 시 실패 조건
RETAIN CURRENT PASSWORD 옵션은 사용자가 새 플러그인에서 기존 비밀번호 형식을 지원하지 않을 경우 명령이 실패합니다.
예를 들어:- 기존 플러그인이 mysql_native_password였고,
- 새 플러그인이 caching_sha2_password일 때,
- 비밀번호가 새 플러그인의 규격에 맞지 않으면 명령이 실행되지 않습니다.
- ERROR 1396 (HY000): Plugin does not support the existing password.
- 기존 비밀번호의 유효성
- 비밀번호가 새 플러그인에서 허용되는 형식이어야 합니다.
- 플러그인이 암호화 또는 해시 방식을 다르게 처리하면 비밀번호를 새로 설정해야 할 수도 있습니다.
기본 동작 vs RETAIN CURRENT PASSWORD
동작기본 동작RETAIN CURRENT PASSWORD 옵션
플러그인 변경 시 비밀번호 | 새 플러그인의 형식에 맞게 자동 변환 | 기존 비밀번호 유지 시도를 명시적으로 요청 |
명령 실패 조건 | 기존 비밀번호가 새 플러그인에 맞지 않으면 변경됨 | 새 플러그인에서 기존 비밀번호를 지원하지 않으면 실패 |
사용자 개입 | 비밀번호 변경이 자동 처리됨 | 명시적으로 유지 요청 |
주요 사용 사례 요약
- 기존 계정의 비밀번호를 유지하며 인증 플러그인만 변경하려는 경우 사용.
- 보안 규정 변경 등으로 인해 새 플러그인을 적용해야 하지만, 기존 비밀번호를 그대로 사용할 때 유용.
- 특정 플러그인에서 비밀번호 형식을 지원하지 않으면 명령이 실패하므로 테스트 환경에서 먼저 실행하는 것이 중요.
궁금한 점이 있다면 언제든 추가로 질문해주세요! 😊
반응형