mysql 사용자추가 및 권한 부여와 DB생성

mysql에서 사용자 생성과 새로 생성한 사용자에 대한 권한부여하는 방법과 기본적인 데이터베이스 생성 후 새로 생성한 유저에게 권한을 부여하는 방법까지 알아보겠습니다.


mysql 사용자추가 및 권한 부여와 DB생성이 필요한 이유

1. 보안:

  • 접근 제어 : 데이터베이스에 접근할 수 있는 사용자를 제한함으로써 민감한 정보의 무단 접근을 방지할 수 있습니다. 특정 사용자에게만 데이터베이스 접근을 허용하여 데이터의 안전성을 확보합니다.
  • 권한 분리: 사용자별로 특정 권한을 부여하여, 필요한 최소한의 권한만을 가지도록 함으로써 보안을 강화할 수 있습니다. 예를 들어, 일부 사용자는 데이터를 읽을 수만 있고, 다른 사용자는 데이터를 수정할 수 있는 권한을 가질 수 있습니다.

2. 데이터 관리:

  • 데이터베이스 구조화 : 데이터베이스를 생성하여 데이터를 체계적으로 관리할 수 있습니다. 이는 데이터의 효율적인 저장, 검색 및 관리를 가능하게 합니다.
  • 사용자별 데이터 관리 : 각 사용자에게 별도의 데이터베이스를 할당함으로써, 프로젝트나 업무별로 데이터를 분리하여 관리할 수 있습니다. 이는 데이터의 격리와 함께 보안성을 높이는 데에도 도움이 됩니다.

3. 책임 소재 명확화:

  • 감사 및 모니터링 : 사용자별로 데이터에 대한 접근과 변경 기록을 추적할 수 있습니다. 이는 문제 발생 시 책임 소재를 명확히 하고, 데이터 변경의 이력을 관리하는 데 중요합니다.


MySQL 데이터베이스 접속

데이터베이스 접속

$ mysql -u root -p

사용자 추가

새로운 사용자를 추가하기 위해 CREATE USER 문을 사용합니다.

다음은 newuser라는 이름의 사용자를 추가하는 예시입니다. 여기서 ‘password’는 실제 사용할 비밀번호로 교체해야 합니다.

CREATE USER '사용자 아이디'@'localhost' IDENTIFIED BY '비밀번호';
새로운 사용자를 추가하기 위해 CREATE USER 문을 사용

MySQL에서 사용자를 생성할 때, @ 기호 뒤에 오는 호스트 부분을 다르게 설정함으로써 다양한 접속 환경에 대한 접근 제어를 할 수 있습니다.

  1. ‘newuser’@’localhost’ : newuser는 localhost에서만 데이터베이스에 접근할 수 있습니다. 즉, 같은 컴퓨터에서의 접속만 허용됩니다.
  2. ‘newuser’@’%’ : 이 경우 %는 모든 호스트를 의미합니다. 따라서 newuser는 네트워크 상의 어느 컴퓨터에서든 MySQL 서버에 접근할 수 있습니다. 이 설정은 보안상의 이유로 신중하게 사용해야 합니다.
  3. ‘newuser’@’192.168.1.5’ : newuser는 IP 주소가 192.168.1.5인 컴퓨터에서만 접근할 수 있습니다.

사용자 제거 

사용자를 잘못 생성한 경우 아래 명령어를 통해서 사용자 제거가 가능합니다.

DROP USER 'newuser'@'localhost';



데이터베이스 생성

새로운 데이터베이스를 생성하기 위해 CREATE DATABASE 문을 사용합니다. 예를 들어, newdatabase라는 이름의 데이터베이스를 생성하는 명령어입니다.

CREATE DATABASE [데이터베이스이름];
새로운 데이터베이스를 생성




사용자에게 권한 부여

생성한 데이터베이스에 대해 새로운 사용자에게 권한을 부여합니다.

GRANT 문을 사용하여 작업을 수행할 수 있습니다. newuser 사용자에게 newdatabase 데이터베이스에 대한 모든 권한을 부여하는 방법입니다.

생성한 데이터베이스에 대해 새로운 사용자에게 권한을 부여

ALL PRIVILEGES는 모든 권한을 의미



권한 적용

권한 변경 사항을 적용하기 위해 FLUSH PRIVILEGES 명령을 실행

권한 변경 사항을 적용하기 위해 FLUSH PRIVILEGES 명령을 실행

이렇게 mysql 사용자추가 및 권한 부여와 DB생성 과정을 알아봤습니다.

감사합니다.

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다