Mysql 사용자 계정 생성

 

Mysql 처음 사용하는 초보자분들이 혼동하시는 부분이 사용자 계정 생성부분입니다.

 

우선 Mysql 설치하시게 되면 root 계정은 리눅스 계정과 같습니다.

 

1. Mysql 사용자계정 추가

 

우선 간단히 Mysql 계정 생성방법에 대해서 설명드리겠습니다.

 

Mysql DB서버에는 여러 Database가 존재할것이고 또 많은 User가 존재할겁니다.

 

예를 들자면

 

User에는  최상위 유저인  Root , 일반유저인 mis13, test   존재한다고 보고

 

Database에는 Mis13, Testdb, Database가 존재합니다.

 

아래 그림을 보시면 Root는 3개의 DB에 접속할 권한을 모두 가지고 있고

 

mis13 유저는 Mis13이란 DB만, test 유저는 TestDB, Databases 두 DB 접속할 권한이 있습니다.

 

자 그럼 mis13, test의 유저들의 권한을 줘보겠습니다.

 

우선 사용자를 생성하기 위해서 Root 권한으로 Mysql에 접속을 합니다.

 

#> Mysql  -u root -p

Enter Password : ######

 

mis13 이란 유저가 Mis13이란 DB의 권한을 가지게 해보겠습니다. (암호는 mis1313)

 

mysql> GRANT ALL PRIVILEGES ON Mis13.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

 

mysql> flush privileges;

 

작성해주시면 끝... mis13으로 접속을 하시면 Mis13이란 DB만 보이실겁니다.

 

2. 그 밖에 외부에서도 접속하기, 모든 DB권한 주기

 

어떤 DB도 접속 가능하게 권한을 주는것은

mysql> GRANT ALL PRIVILEGES on *.*  to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql> flush privileges;

 

슈퍼유저로 (즉 root 권한으로) 권한을 주는것은

mysql> GRANT ALL PRIVILEGES on  *.*  to mis13@"%" IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql > flush privileges;

 

GRANT 명령어 말고 Mysql DB 안에 User, DB 테이블에 넣는 법도 있지만 초보분이 사용하시기엔

이 방법이 편하실겁니다.

 

3. 모든 권한이 아닌 부분별 골라서 주기

 

예) mis13 이라는 계정이 전체 데이터베이스에 대해서 select, insert, delete, update 권한만 주고 싶을 경우

mysql>GRANT select, insert, delete, update on *.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql> flush privileges;

 

예) mis13 이라는 계정이 Mis13 이라는 데이터베이스에 대해서 select, insert, update 권한만 주고 싶을 경우

mysql>GRANT select, insert, update on Mis13.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql>flush privileges;

 

PS - 함부로 권한을 주진 맙시다.

 

Posted by Sting!

댓글을 달아 주세요