Real My SQL 스터디/사용자 및 권한

비밀번호 관리

webmaster 2026. 2. 26. 00:19

고수준 비밀번호

MySQL 서버에서 비밀번호의 유효성 체크 규칙을 적용하려면 validate_password 컴포넌트를 이용하면 된다.

INSTALL component 'file://component_validate_password'; -- 컴포넌트 설치
select * from mysql.component; -- 설치된 컴포넌트 확인

 

컴포넌트에서 제공하는 시스템 변수 확인

SHOW GLOBAL VARIABLES LIKE 'validate_password%';

비밀번호 정책: 기본값은 Medium으로 자동 설정된다.

  • LOW: 비밀번호의 길이만 검증
  • MEDIUM: 비밀번호의 길이를 검증하며, 숫자와 대소문자, 그리고 특수문자의 배합을 검증
  • STRONG: MEDIUM 레벨의 검증을 모두 수행하며, 금칙어가 포함됐는지 여부까지 검증

비밀번호의 길이는 validate_password.length 시스템 변수에 설정된 길이 이상의 비밀번호가 사용됐는지를 검증하며, 숫자와 대소문자, 특수문자는 validate_password.mixed_case_count와 validate_password.number_count, validate_password.special_char_count 시스템 변수에 설정된 글자 수 이상을 포함하고 있는지 검증한다.

 

금칙어는 validate_password.dictionary_file 시스템 변수에 설정된 사전 파일에 명시된 단어를 포함하고 있는지를 검사한다.

set global validate_password.dictionary_file='prohibitive_word.data';
set global validate_password.policy='STRONG'
  • 높은 수준의 보안을 요구하는 서비스에서 주로 사용한다.
  • 금칙어 파일은 금칙어를 하나씩 기록해 저장한 텍스트 파일로 작성하면 된다.
  • 비밀번호 금칙어 같은 경우 validate_password.policy 시스템 변수가 strong으로 설정된 경우에만 작동하므로 금칙어를 적용하려면 validate_password_policy 시스템 변수도 함께 변경해햐한다.

이중 비밀번호

데이터베이스의 계정 정보는 서비스가 실행 중인 경우에 변경이 불가능 했었지만, MySql 8.0 버전부터는 계정의 비밀번호로 2개의 값을 동시에 사용할 수 있는 기능을 추가했고, 이 기능을 이중 비밀번호라고 한다.

ALTER USER 'root'@'localhost' identified by 'new_password' retain current password
  • MySQL 서버의 이중 비밀번호 기능으로 하나의 계정에 2개의 비밀번호 설정이 가능하며, 프라이머리, 세컨더리로 구분된다.
    • 최근에 설정한 비밀번호를 프라이머리, 이전 비밀번호를 세컨더리 비밀번호가 된다.
  • 이중 비밀번호를 사용하려면 비밀번호 변경 구문에 "RETAIN CURRENT PASSWORD" 옵션을 추가하면 된다.
    • 이중 비밀번호 설정을 한 이후, 데이터베이스에 연결하는 응용 프로그램의 소스코드나 설정 파일의 비밀번호를 새로운 비밀번호로 변경하면 된다.
    • MySQL에 접속하는 모든 응용 프로그램의 재시작이 완료되면 세컨더리 비밀번호는 삭제하는 것이 좋다
      • ALTER USER 'root'@'localhost' DISCARD OLD PASSWORD

'Real My SQL 스터디 > 사용자 및 권한' 카테고리의 다른 글

역할  (0) 2026.03.02
권한  (0) 2026.02.28
사용자 계정 관리  (0) 2026.02.23
사용자 식별  (0) 2026.02.22