ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3장 2. 비밀번호 관리
    데이터베이스/Real MySQL 8.0 2022. 8. 7. 20:55

    고수준 비밀번호

    비밀번호 보안을 위해서는 금칙어를 설정해야 합니다.

    이를 위해 MySQL에 validate_password 라는 컴포넌트를 설치할 수 있습니다.

    - MySQL 5.7 버전 이하는 플러그인 형태로 지원됩니다.

     

    컴포넌트 설치 시, 제공되는 시스템 변수와 역할은 다음과 같습니다.

    • (validate_password.)check_user_name :
      비밀번호에 아이디가 포함되어 있는지 확인합니다.

    • dictionary_file :
      변수안에 저장된 단어들을 금칙어로 지정합니다.

    • length :
      비밀번호의 최소 길이를 지정합니다.

    • mixed_case_count :
      숫자, 대소문자, 특수문자가 몇 가지를 포함되어야 하는지 설정합니다.

    • number_count : 
      최소 포함해야 하는 숫자 개수를 지정합니다. 

    • special_char_count :
      최소 포함해야 하는 특수문자 개수를 지정합니다.

    • policy : 
      정책의 값에 따라 보안 강도가 결정됩니다.

      LOW : 비밀번호의 길이만 검증합니다.

      MEDIUM : LOW 레벨 포함, 숫자와 대소문자, 특수문자의 배합을 검증합니다.
      STRONG : MEDIUM 레벨 포함, 금칙어가 포함되었는지도 검증합니다.

     

    이중 비밀번호

    일반적으로 많은 응용 프로그램들이 데이터베이스를 공용으로 사용하는 경우가 많기 때문에

    함부로 비밀번호를 변경할 경우, 연관되어 있는 프로그램들이 영향을 받게됩니다.

     

    하지만 보안을 위해서는 비밀번호를 자주 변경해야 합니다.

     

    이러한 문제점을 해결하기 위해 MySQL 8.0 버전부터 이중 비밀번호를 지원합니다.

    ALTER USER 'user'@'localhost' IDENTIFIED BY 'new_password' RETAIN CURRENT PASSWORD;

     

    'user'의 비밀번호를 'new_password'로 바꾸면서 기존 비밀번호를 유지합니다.

    그 결과, 응용 프로그램들은 'new_password'  또는 기존 비밀번호를 사용하여 데이터베이스에 접근할 수 있습니다.

    - 이때, 새 비밀번호를 프라이머리(Primary), 기존 비밀번호를 세컨더리(Secondary)라고 합니다.

     

     

    모든 응용 프로그램들의 코드를 수정하고 나면, 기존 비밀번호를 제거합니다.

    ALTER USER 'user'@'localhost' DISCARD OLD PASSWORD;

    '데이터베이스 > Real MySQL 8.0' 카테고리의 다른 글

    4장 1.3 메모리 할당 및 사용 구조  (0) 2022.08.10
    4장 1.2 MySQL 스레딩 구조  (0) 2022.08.09
    4장 1.1 MySQL의 구조  (0) 2022.08.09
    3장 3. 권한 및 역할  (0) 2022.08.07
    3장 1. 사용자 계정 관리  (0) 2022.08.07

    댓글

Designed by Tistory.