mysql에서 사용자 생성과 새로 생성한 사용자에 대한 권한부여하는 방법과 기본적인 데이터베이스 생성 후 새로 생성한 유저에게 권한을 부여하는 방법까지 알아보겠습니다.
포스팅 목차
mysql 사용자추가 및 권한 부여와 DB생성이 필요한 이유
1. 보안:
- 접근 제어 : 데이터베이스에 접근할 수 있는 사용자를 제한함으로써 민감한 정보의 무단 접근을 방지할 수 있습니다. 특정 사용자에게만 데이터베이스 접근을 허용하여 데이터의 안전성을 확보합니다.
- 권한 분리: 사용자별로 특정 권한을 부여하여, 필요한 최소한의 권한만을 가지도록 함으로써 보안을 강화할 수 있습니다. 예를 들어, 일부 사용자는 데이터를 읽을 수만 있고, 다른 사용자는 데이터를 수정할 수 있는 권한을 가질 수 있습니다.
2. 데이터 관리:
- 데이터베이스 구조화 : 데이터베이스를 생성하여 데이터를 체계적으로 관리할 수 있습니다. 이는 데이터의 효율적인 저장, 검색 및 관리를 가능하게 합니다.
- 사용자별 데이터 관리 : 각 사용자에게 별도의 데이터베이스를 할당함으로써, 프로젝트나 업무별로 데이터를 분리하여 관리할 수 있습니다. 이는 데이터의 격리와 함께 보안성을 높이는 데에도 도움이 됩니다.
3. 책임 소재 명확화:
- 감사 및 모니터링 : 사용자별로 데이터에 대한 접근과 변경 기록을 추적할 수 있습니다. 이는 문제 발생 시 책임 소재를 명확히 하고, 데이터 변경의 이력을 관리하는 데 중요합니다.
MySQL 데이터베이스 접속
$ mysql -u root -p
사용자 추가
새로운 사용자를 추가하기 위해 CREATE USER 문을 사용합니다.
다음은 newuser라는 이름의 사용자를 추가하는 예시입니다. 여기서 ‘password’는 실제 사용할 비밀번호로 교체해야 합니다.
CREATE USER '사용자 아이디'@'localhost' IDENTIFIED BY '비밀번호';
MySQL에서 사용자를 생성할 때, @ 기호 뒤에 오는 호스트 부분을 다르게 설정함으로써 다양한 접속 환경에 대한 접근 제어를 할 수 있습니다.
- ‘newuser’@’localhost’ : newuser는 localhost에서만 데이터베이스에 접근할 수 있습니다. 즉, 같은 컴퓨터에서의 접속만 허용됩니다.
- ‘newuser’@’%’ : 이 경우 %는 모든 호스트를 의미합니다. 따라서 newuser는 네트워크 상의 어느 컴퓨터에서든 MySQL 서버에 접근할 수 있습니다. 이 설정은 보안상의 이유로 신중하게 사용해야 합니다.
- ‘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
명령을 실행
이렇게 mysql 사용자추가 및 권한 부여와 DB생성 과정을 알아봤습니다.
감사합니다.