상세 컨텐츠

본문 제목

MySQL 사용자 계정 생성

툴 사용법 및 세팅/DB

by 라타니 2021. 10. 13. 22:17

본문

XAMPP와 SQLYog를 설치하지 않은 경우, 아래 링크들을 참고하면 된다.

2021.10.13 - [툴 사용법 및 세팅/DB] - MySQL 사용을 위한 XAMPP 설치 및 세팅

2021.10.13 - [툴 사용법 및 세팅/DB] - MySQL 사용을 위한 SQLYog 설치 및 실행

 

SQLYog를 실행하는 데, 처음에 혼자 연습할 때에는 root계정만 사용할 수도 있다.

하지만 이후에는 불필요한 DB 노출을 피하기 위해 각 권한 설정을 다르게 한 계정을 생성하는 것이 매우 중요하다.

따라서 이번에는 root와 동일하게 모든 DB의 접근 권한을 갖는 계정을 생성해보도록 하겠다.

 

1. XAMPP 실행 후 우측의 shell 클릭

 

2. root 계정 접속 후 Grant 명령어 실행

(1) root 계정으로 접속

mysql -u root -p 명령어를 입력한다. 비밀번호는 없으므로 그냥 엔터를 누르면 접속이 완료된다.

 

(2) Grant 명령어 입력

Grant는 권한을 부여하는 SQL문이다(DCL(데이터 제어어)).

 

다양한 조건의 권한 부여에 따라 명령어가 달라지지만, 여기에서는 모든 권한을 주는 계정을 생성할 것이므로

GRANT ALL PRIVILEGES ON DB명.테이블명 TO 사용자명@호스트 IDENTIFIED BY '비밀번호';

라는 명령어를 사용하면 된다.

ex) GRANT ALL PRIVILEGES ON *.* TO sbsst@`%` IDENTIFIED BY 'sbsst123414';

 

여기서 주의해서 봐야할 몇 가지가 있다.

 

- ALL PRIVILEGES

생성, 읽기, 수정, 삭제(CRUD)의 모든 권한을 의미한다.

경우에 따라 SELECT와 INSERT만 허용하게 하는 등의 범위를 설정할 수 있다.

 

- *.*

*.*는 '모든 DB'.'모든 테이블'에 권한을 가진다는 뜻이다.

'특정 DB명'.'모든 테이블', 또는 '특정 DB명'.'특정 테이블명'과 같이 활용에 따라 권한 범위의 설정이 가능하다.

 

-`%`

여기서 호스트 위치의 `%`는 작은 따옴표가 아니라 억음 부호(backtick)이니 잘 구별해야 한다.

`%`의 의미는, sbsst 계정이 어떤 IP에서 접속을 시도하더라도 모두 허용한다는 의미이다.

특정 IP주소에서만 접근이 가능하게끔 설정할 수도 있다.

 

다양한 권한 부여 명령어를 잘 정리해놓은 블로그가 있으니, 경우에 따라 참고하면 좋을 것 같다. 

https://tipland.tistory.com/47

3. 만들어진 사용자 계정으로 접속 확인

사용자 계정이 잘 만들어졌는지 체크를 해야 한다.

exit 명령어를 입력해 MariaDB(MySQL)를 종료 후, mysql -u 계정명 -p 명령어를 입력하여 재접속한다.

접속에 문제가 없다면 정상적으로 계정이 만들어진 것이다.

관련글 더보기