반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MySQL] SET PASSWORD 문 완벽 가이드: 안전한 비밀번호 관리를 위한 필수 지식
SQL/MYSQL

[MySQL] SET PASSWORD 문 완벽 가이드: 안전한 비밀번호 관리를 위한 필수 지식

2025. 6. 13. 16:42
728x90
반응형

 

왜 SET PASSWORD를 알아야 할까?

MySQL에서 사용자 계정 보안은 시스템 전체의 안정성과 직결됩니다. 비밀번호 관리는 그 출발점이며, SET PASSWORD 문은 이를 수행하는 핵심 명령어입니다. 이 글에서는 MySQL에서 SET PASSWORD를 사용하는 법, 주의할 점, 그리고 MySQL 버전별 변화까지 쉽게 정리해드립니다.


1. SET PASSWORD란?

SET PASSWORD 문은 MySQL 사용자 계정의 비밀번호를 변경하거나 초기화할 때 사용합니다. 비밀번호는 MySQL의 mysql.user 테이블에 저장되며, 이 명령은 안전한 인증 체계를 유지하는 데 필수입니다.

기본 구문:

SET PASSWORD FOR 'user1'@'localhost' = '새로운비밀번호';

MySQL 5.7 이상부터는 비밀번호를 평문으로 직접 지정할 수 없고, PASSWORD() 함수도 더 이상 권장되지 않습니다. 대신, MySQL 8.0에서는 IDENTIFIED BY 절을 사용하는 것이 일반적입니다.


2. MySQL 버전별 구문 차이

  • MySQL 5.6 이하:
SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('mysecurepass');
  • MySQL 5.7: PASSWORD() 함수는 더 이상 권장되지 않으며, ALTER USER 또는 SET PASSWORD 사용 권장.
  • MySQL 8.0 이상:
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'mysecurepass';

또는

SET PASSWORD FOR 'user1'@'localhost' = 'mysecurepass';

단, 비밀번호는 caching_sha2_password 또는 mysql_native_password 등 인증 플러그인 설정에 따라 암호화됩니다.


3. 사용자 자신의 비밀번호 변경하기

현재 로그인한 사용자가 자신의 비밀번호를 바꾸고 싶다면 FOR 절 없이도 가능합니다:

SET PASSWORD = '새비밀번호';

이는 CURRENT_USER()에 해당하는 계정의 비밀번호를 갱신합니다.


4. 보안 팁과 주의사항

  • 비밀번호 변경은 가능하면 SSL 접속 환경에서 수행하세요.
  • 비밀번호는 8자 이상, 숫자+문자+특수문자 조합이 좋습니다.
  • FLUSH PRIVILEGES는 필요하지 않습니다. SET PASSWORD는 즉시 적용됩니다.
  • root 권한이 있어야 다른 사용자의 비밀번호를 변경할 수 있습니다.

결론 및 실무 팁

SET PASSWORD 문은 간단하지만, MySQL 사용자 보안을 유지하는 데 필수적인 도구입니다. MySQL 8.0 이후로 인증 방식이 변화하며 ALTER USER 구문도 같이 활용되므로 상황에 맞게 선택적으로 사용하는 것이 중요합니다.

실무 팁:

  1. 정기적으로 비밀번호를 변경하는 보안 정책을 수립하세요.
  2. 사용자 별로 인증 플러그인을 명확히 설정해두세요.
  3. 자동화된 스크립트에서는 비밀번호를 환경 변수나 Vault 등에 안전하게 저장하세요.

공식 문서 링크

  • MySQL SET PASSWORD 공식 문서
728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MySQL] DROP RESOURCE GROUP 문: 불필요한 리소스 그룹 안전하게 삭제하기  (0) 2025.06.15
[MySQL] CREATE RESOURCE GROUP 문 가이드: 리소스 최적화를 위한 시작점  (0) 2025.06.15
[MySQL] ALTER RESOURCE GROUP 문 완벽 가이드: 리소스 제어의 핵심 기능  (1) 2025.06.14
[MySQL] SET ROLE 문 완벽 이해: 동적 권한 제어의 핵심 기능  (0) 2025.06.14
[MySQL] SET DEFAULT ROLE 문 완전 정복: 사용자 권한 관리의 핵심  (0) 2025.06.13
[MySQL] REVOKE 사용 방법 및 예시  (0) 2025.03.31
[MySQL] Index Condition Pushdown 사용 방법 및 예시  (0) 2025.03.19
[MySQL] RENAME USER 사용 방법 및 예시  (0) 2025.03.19
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] ALTER RESOURCE GROUP 문 완벽 가이드: 리소스 제어의 핵심 기능
    • [MySQL] SET ROLE 문 완벽 이해: 동적 권한 제어의 핵심 기능
    • [MySQL] SET DEFAULT ROLE 문 완전 정복: 사용자 권한 관리의 핵심
    • [MySQL] REVOKE 사용 방법 및 예시
    Ant_U
    Ant_U

    티스토리툴바