MySQL에서 SHOW CREATE USER를 알아야 하는 이유
MySQL에서는 사용자 계정과 권한 관리를 통해 데이터베이스 보안을 유지합니다. 하지만 사용자를 만들고 나면 계정 정보와 권한 설정이 어떻게 되어 있는지 정확히 확인해야 할 일이 종종 생기죠.
이때 SHOW CREATE USER 문을 사용하면 해당 사용자를 생성할 때 필요한 SQL문을 그대로 확인할 수 있어 계정 마이그레이션이나 보안 점검에 큰 도움이 됩니다.
SHOW CREATE USER 기본 사용법
SHOW CREATE USER 문은 특정 사용자 계정의 생성 구문을 반환합니다.
기본 문법은 다음과 같습니다.
SHOW CREATE USER '사용자이름'@'호스트';
예를 들어, app_user라는 사용자가 localhost에서 접속한다면 다음과 같이 실행하면 됩니다.
SHOW CREATE USER 'app_user'@'localhost';
실행 결과는 다음과 같은 형태로 출력됩니다.
CREATE USER 'app_user'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*HASHEDPASSWORD' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK;
여기에는 암호화된 비밀번호 해시, 인증 플러그인, SSL 요구사항, 비밀번호 만료 정책 등 계정 생성 시의 핵심 정보가 포함되어 있습니다.
실무에서 자주 쓰이는 활용 시나리오
1. 사용자 계정 마이그레이션
서버를 이전하거나 다른 환경으로 계정을 복제해야 할 때, SHOW CREATE USER로 계정 생성 SQL을 추출해 새로운 서버에서 그대로 실행하면 됩니다.
다만 GRANT 구문은 포함되지 않기 때문에, 권한 정보는 SHOW GRANTS FOR 문으로 따로 확인해야 합니다.
2. 계정 보안 점검
보안 감사 시 사용자 계정이 어떤 인증 플러그인을 사용하는지, 비밀번호 정책은 어떻게 설정되어 있는지 확인할 수 있습니다.
특히 MySQL 8.0부터는 caching_sha2_password가 기본 플러그인으로 바뀌었기 때문에, 기존 mysql_native_password를 쓰고 있다면 업그레이드 여부를 검토하는 것이 좋습니다.
3. 권한 관리 실수 방지
계정을 재생성할 때 기존에 설정된 세부 옵션을 놓치기 쉽습니다.
SHOW CREATE USER를 통해 원본 스크립트를 보고 누락 없이 적용할 수 있어 권한 관리 오류를 줄일 수 있습니다.
MySQL 버전별 참고사항
- MySQL 5.7 이하 버전에서는 일부 계정 정보가 SHOW CREATE USER에 포함되지 않을 수 있습니다.
- MySQL 8.0 이상에서는 인증 플러그인, SSL/TLS 요구사항, 계정 잠금/만료 정책 등 더 많은 계정 속성을 정확히 보여줍니다.
- SHOW CREATE USER는 MySQL 5.7 이상에서 안정적으로 사용 가능합니다.
또한 SHOW CREATE USER를 사용하려면 해당 계정에 대한 SELECT 권한과 mysql.user 테이블에 접근할 수 있는 권한이 있어야 합니다.
결론과 실무 팁
SHOW CREATE USER 문은 계정 관리와 마이그레이션 시 반드시 알아야 할 도구입니다.
핵심 포인트를 다시 정리해 보면 다음과 같습니다.
- 사용자 계정을 정확히 복제하거나 이전할 때 유용하다.
- 권한 정보는 포함되지 않으므로 SHOW GRANTS FOR를 함께 사용해야 한다.
- 인증 플러그인과 보안 정책이 버전에 따라 다를 수 있으므로 주의해야 한다.
실무에서는 정기적으로 SHOW CREATE USER와 SHOW GRANTS FOR를 함께 덤프해두면, 계정 문제 발생 시 빠르게 복구할 수 있습니다.
공식 문서 바로가기
'SQL > MYSQL' 카테고리의 다른 글
[MySQL] SHOW DATABASES 사용법과 실무 활용 가이드 (0) | 2025.07.06 |
---|---|
[MySQL] SHOW CREATE VIEW 사용법 완벽 가이드: 뷰(View) 정의 쉽게 확인하기 (0) | 2025.07.05 |
[MySQL] SHOW CREATE TRIGGER 사용법과 실무 활용 가이드 (0) | 2025.07.03 |
[MySQL] SHOW CREATE TABLE 문 완벽 가이드: 테이블 구조 확인과 백업에 필수 (0) | 2025.07.02 |
[MySQL] SHOW CREATE PROCEDURE 사용법: 저장 프로시저 정의 쉽게 확인하기 (0) | 2025.06.30 |
[MySQL] SHOW CREATE FUNCTION 문 설명: 함수 정의 SQL 확인하기 (0) | 2025.06.29 |
[MySQL] SHOW CREATE EVENT 문 설명: 이벤트 정의 SQL 보기 (0) | 2025.06.29 |
[MySQL] SHOW CREATE DATABASE 문 설명: 데이터베이스 생성 SQL 확인하기 (0) | 2025.06.28 |