서버 & 리눅스 실무팁

MariaDB 사용자 계정 정리 가이드 | 익명 계정 삭제 & 권한 설정 Best Practice

smartbay 2025. 12. 5. 09:41

MariaDB 사용자 계정 정리 가이드 | 익명 계정 삭제 & 권한 설정 Best Practice

MariaDB 설치 후 반드시 해야 할 보안 설정 가이드. 익명 계정 삭제, 사용자 권한 점검, SQL 명령어 모음, 실수 복구 사례까지 실무 중심으로 정리했습니다.

 

 

1. MariaDB 기본 사용자 계정 이해

MariaDB 설치 직후 아래와 같은 계정이 존재합니다.

User Host 설명
root localhost 관리자 계정
(빈 값) localhost 등 익명 계정(보안 위험)

익명 계정은 테스트 편의성 때문에 존재하지만, 실제 운영 환경에서는 취약점이 됩니다.

 

2. 사용자 권한을 확인하는 올바른 방법

SELECT User, Host FROM mysql.user;

특정 사용자 권한 확인:

SHOW GRANTS FOR 'root'@'localhost';

mysql.user 테이블 직접 수정은 위험합니다. DROP USER, GRANT 명령 사용을 권장합니다.

 

3. 익명 계정은 꼭! 삭제해야 하는 이유

  • 비밀번호 없이 접속 가능
  • 침해 시 즉시 DB 탈취 가능
  • 로깅/추적 불가

익명 계정 삭제 권장:

DROP USER ''@'localhost';
FLUSH PRIVILEGES;
 

4. 명령 실행 전 백업은 선택이 아닌 필수

사용자 및 권한정보 백업:

mysqldump -u root -p mysql user > mysql_user_backup.sql

복원:

mysql -u root -p mysql < mysql_user_backup.sql

문제 발생 시 빠르게 복구할 수 있도록 백업 습관을 들이세요.

 

5. root 계정만 남기는 것은 위험!

root 계정만 사용 시 발생 문제:

위험 설명
사고 시 DB 전체 손상 DROP DATABASE 오타 한 번으로 재앙
장애 분석 불가 누가 작업했는지 추적 불가능
보안 원칙 위반 최소 권한 원칙 불이행

운영/서비스 계정은 반드시 따로 두어야 합니다.

 

6. 안전하게 불필요 계정 정리 절차

  1. 사용자 목록 확인
  2. 필요 없는 계정 식별
  3. 개별 제거
  4. 권한 적용
DROP USER 'test'@'%';
DROP USER ''@'localhost';
FLUSH PRIVILEGES;

절대 하면 안되는 실수:

DELETE FROM mysql.user WHERE User <> 'root';

→ root 원격 접속 삭제 → 접속 불가 사례 다수 발생

 

7. 실제 서비스 계정 운영 Best Practice

Web App 서비스 계정 구성 예시:

CREATE USER 'app'@'localhost' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON appdb.* TO 'app'@'localhost';
FLUSH PRIVILEGES;

Host % 사용은 최소화하세요. 특정 IP 또는 localhost만 허용하는 것이 안전합니다.

운영/개발/테스트 계정은 역할을 분리해 두면 문제 발생 시 영향도를 줄일 수 있습니다.

 

8. 실수 사례(삽질 기록)

상황 결과 해결 방법
root 외 계정 모두 삭제 DB 접속 불가 single-user mode + 패스워드 재설정
서비스 계정 삭제 웹 서비스 장애 발생 백업 복원
권한 과다 부여 개발자가 전체 DB DROP 권한 최소화 재정의

재현 불가 장애의 많은 원인은 계정 관리 문제에서 시작합니다.

 

9. MySQL vs MariaDB 차이 비교

항목 MySQL MariaDB
개발 주체 Oracle MariaDB Foundation
인증 플러그인 기본 PAM / Unix Socket 강력 지원
계정 정책 안정적 호환성 버전별 차이 존재
초기 계정 구성 OS 따라 다름 익명 계정이 더 빈번

실무 환경에서는 사용 중인 버전에 따른 명령 차이를 사전에 확인하세요.

 

10. SQL 명령어 모음

필요 시 복사해 사용하세요.

-- 사용자 전체 조회
SELECT User, Host FROM mysql.user;

-- 사용자 생성
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

-- 권한 부여
GRANT SELECT,INSERT,UPDATE ON appdb.* TO 'user'@'localhost';

-- 사용자 삭제
DROP USER 'user'@'localhost';

-- 권한 변경 적용
FLUSH PRIVILEGES;
 

11. 마무리: DB 보안은 계정 관리에서 시작

  • 익명 계정 삭제 필수
  • root 계정만 사용하는 운영 구조는 위험
  • 서비스 계정 별도 운영은 선택이 아닌 필수
  • 정기적인 권한 점검 필요
  • 백업 습관이 안정적인 운영의 핵심

스마트베이 | IT 자동화 혁신 파트너
비즈니스 효율을 높이는 스마트한 IT 솔루션을 제공합니다.

웹사이트 : www.esmartbay.co.kr
E-mail : smartbay.svc@gmail.com
카카오톡 : 바로 상담하기