쌩로그

[DB] MySQL 비밀번호 보안 정책 본문

DB/RDB

[DB] MySQL 비밀번호 보안 정책

.쌩수. 2025. 11. 2. 17:15
반응형

목차

  1. 포스팅 개요
  2. 본론

1. 포스팅 개요

해당 포스팅은 MySQL 비밀번호 보안 정책에 대한 포스팅이다.

간단하게 MySQL에서 root 계정에 패스워드를 root로 사용하기 위해서 비밀번호를 변경했지만, MySQL이 정한 비밀번호 보안 정책으로 인해서 막힌다.

이에 대해 알아본다.

2. 본론

결론

-- 비밀번호를 'root'로 변경하기 위한 설정
SET GLOBAL validate_password.check_user_name=OFF;
SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.length=4;
SET GLOBAL validate_password.mixed_case_count=0;
SET GLOBAL validate_password.number_count=0;
SET GLOBAL validate_password.special_char_count=0;
show variables like 'validate_password%';

-- 기존
SET GLOBAL validate_password.check_user_name=ON;
SET GLOBAL validate_password.policy=MEDIUM;
SET GLOBAL validate_password.length=8;
SET GLOBAL validate_password.mixed_case_count=1;
SET GLOBAL validate_password.number_count=1;
SET GLOBAL validate_password.special_char_count=1;
show variables like 'validate_password%';

"-- 비밀번호를 'root'로 변경하기 위한 설정" 부분처럼 하면된다.
그리고 다시 기존처럼 바꿔놓자.

옵션을 알아보자.

  • "validate_password.check_user_name"
    • 비밀번호에 사용자명 또는 호스트명이 포함여부
  • "validate_password.policy"
    • LOW / MEDIUM / STRONG (숫자로 0/1/2도 가능)
    • LOW: 길이만 검사 (validate_password.length)
    • MEDIUM: 길이 + 소문자/대문자/숫자/특수문자 각 1개 이상 요구
      (최소 개수는 …_mixed_case_count, …_number_count, …_special_char_count로 조절)
    • STRONG: MEDIUM 조건 + 사전(dictionary) 검사
      (validate_password.dictionary_file에 지정한 파일 내 단어가 비번에 있으면 거부)
  • *"validate_password.length"
    • 말그대로 최소 비밀번호 길이다. 지금은 8로 되어있기 때문에 8자리 이상의 비밀번호를 요구하고 있다. 이 값을 변경하기 원하는 자리수에 맞게 바꿔주자.
  • "validate_password.mixed_case_count"
    • 대소문자를 섞어 사용할지다.
  • "validate_password.number_count"
    • 비밀번호에 최소한 숫자가 몇 문자 들어가는지 설정한다.
  • "validate_password.special_char_count"
    • 특수문자가 최소 몇 문자 들어가는 지 설정한다.

참고 : https://m.blog.naver.com/gyul611/223164885872

728x90
Comments