카테고리 없음

Retain Current Password란?

idea9329 2024. 11. 21. 13:40
반응형

 

RETAIN CURRENT PASSWORD는 MySQL에서 사용자 계정을 변경(예: ALTER USER)할 때, 기존 계정의 비밀번호를 그대로 유지하려는 의도를 명시적으로 표현하는 옵션입니다.

이 옵션은 인증 플러그인을 변경할 때 주로 사용되며, 플러그인 변경 시 MySQL이 기본적으로 기존 비밀번호를 새로운 인증 플러그인에 맞는 방식으로 변환하도록 합니다.


사용 사례

  1. 기존 비밀번호 유지
    인증 플러그인을 변경하더라도 비밀번호를 새로 설정하지 않고 기존 비밀번호를 그대로 사용하려는 경우.
  2. ALTER USER 'username'@'host' IDENTIFIED WITH 'plugin_name' RETAIN CURRENT PASSWORD;
  3. 비밀번호 재설정 방지
    비밀번호를 변경하지 않고 인증 플러그인만 변경하려는 경우 사용됩니다.

사용 예제

기존 플러그인을 변경하고 비밀번호 유지:

ALTER USER 'test_user'@'localhost' IDENTIFIED WITH caching_sha2_password RETAIN CURRENT PASSWORD;
  • 여기서 test_user의 비밀번호는 변경되지 않으며, 새 플러그인(caching_sha2_password)에서 그대로 사용됩니다.

제약 조건

  1. 플러그인 변경 시 실패 조건
    RETAIN CURRENT PASSWORD 옵션은 사용자가 새 플러그인에서 기존 비밀번호 형식을 지원하지 않을 경우 명령이 실패합니다.
    예를 들어:
    • 기존 플러그인이 mysql_native_password였고,
    • 새 플러그인이 caching_sha2_password일 때,
    • 비밀번호가 새 플러그인의 규격에 맞지 않으면 명령이 실행되지 않습니다.
    오류 메시지 예:
  2. ERROR 1396 (HY000): Plugin does not support the existing password.
  3. 기존 비밀번호의 유효성
    • 비밀번호가 새 플러그인에서 허용되는 형식이어야 합니다.
    • 플러그인이 암호화 또는 해시 방식을 다르게 처리하면 비밀번호를 새로 설정해야 할 수도 있습니다.

기본 동작 vs RETAIN CURRENT PASSWORD

동작기본 동작RETAIN CURRENT PASSWORD 옵션

플러그인 변경 시 비밀번호 새 플러그인의 형식에 맞게 자동 변환 기존 비밀번호 유지 시도를 명시적으로 요청
명령 실패 조건 기존 비밀번호가 새 플러그인에 맞지 않으면 변경됨 새 플러그인에서 기존 비밀번호를 지원하지 않으면 실패
사용자 개입 비밀번호 변경이 자동 처리됨 명시적으로 유지 요청

주요 사용 사례 요약

  • 기존 계정의 비밀번호를 유지하며 인증 플러그인만 변경하려는 경우 사용.
  • 보안 규정 변경 등으로 인해 새 플러그인을 적용해야 하지만, 기존 비밀번호를 그대로 사용할 때 유용.
  • 특정 플러그인에서 비밀번호 형식을 지원하지 않으면 명령이 실패하므로 테스트 환경에서 먼저 실행하는 것이 중요.

궁금한 점이 있다면 언제든 추가로 질문해주세요! 😊

반응형