MySQL에서 사용자 관리 및 권한 부여

 

MySQL은 여러 사용자가 동시에 접속해 데이터를 처리할 수 있는 다중 사용자 데이터베이스 시스템입니다. 따라서 사용자 계정을 체계적으로 관리하고 적절한 권한을 부여하는 것은 보안운영 효율성을 위해 매우 중요합니다.

MySQL 사용자 계정 생성, 권한 부여, 수정 및 삭제 방법을 포함하여 권한 확인 및 보안 관리까지 실제 운영에 필요한 내용을 알려드립니다.

 


MySQL 사용자 계정 생성

사용자 계정은 다음 명령으로 생성합니다.

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • 'username': 사용자 이름
  • 'host': 허용된 접속 IP (예: 'localhost', '%')

예시:

CREATE USER 'devuser'@'localhost' IDENTIFIED BY 'securepass123';

권한 부여 (GRANT)

MySQL에서는 필요한 권한만 최소한으로 부여하는 것이 보안상 바람직합니다.

기본 문법:

GRANT 권한목록 ON 데이터베이스.테이블 TO 'username'@'host';

예시:

GRANT SELECT, INSERT ON mydb.* TO 'devuser'@'localhost';

모든 권한 부여 예시:

GRANT ALL PRIVILEGES ON *.* TO 'adminuser'@'%' WITH GRANT OPTION;
  • WITH GRANT OPTION: 다른 사용자에게도 권한 부여 가능

 


권한 적용 및 확인

변경 사항 적용:

FLUSH PRIVILEGES;

사용자 권한 조회:

SHOW GRANTS FOR 'username'@'host';

 

 


사용자 권한 변경 및 삭제

권한 취소 (REVOKE):

REVOKE 권한목록 ON 데이터베이스.테이블 FROM 'username'@'host';

사용자 삭제 (DROP):

DROP USER 'username'@'host';

예시:

DROP USER 'testuser'@'%';

 

 


실무 보안 팁

  • 불필요한 GRANT ALL은 지양하고 최소 권한만 부여
  • 모든 사용자 비밀번호는 강력한 복잡도로 설정
  • 정기적으로 SHOW GRANTS로 권한 점검
  • 데이터베이스 별로 전용 계정 분리 권장

 

 

MySQL의 사용자 관리 및 권한 부여는 데이터베이스 보안을 강화하고 운영 효율을 높이는 핵심 관리 요소입니다. 불필요한 권한은 줄이고, 계정과 권한을 정기적으로 점검하는 습관을 들이면 안전한 데이터베이스 운영이 가능합니다.