SQL/MySQL

mysql에서 사용자 계정 추가하기

http://portfolio.wonpaper.net 2019. 10. 9. 05:08

1. 먼저 mysql 서버에 root 권한으로 접속하기

 

]$ mysql -u root -p

password ****

루트 패스 치시고 mysql 접속

 

* 권한 부여 할때에는 grant 명령어나 insert 문으로 직접 추가하시는 방법이 있습니다.

Grant 문을 이용하면 flush privileges 를 할 필요가 없습니다.

 

(*) 사용자 계정 test 생성 - localhost

create user test@localhost identified by '패스워드';

 

2. test라는 사용자에게 MySQL 의 모든 DB 의 모든 테이블에 모든권한을 부여하기 - root 권한 주기

 

mysql> grant all privileges on *.* to test@localhost identified by '패스워드' with grant option;

 

-> localhost 의 test 에게 (test@localhost) 패스워드라는 암호로 MySQL 의 모든 권한을 부여 하고 있슴당

 

만약, insert 문을 쓴다면,

 

mysql> insert into user values ('localhost','test',password('패스워드'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

mysql> flush privileges;

 

 

3. test 라는 사용자에게 testDB 라는 DB에 모든 테이블에 모든 권한을 부여하기

 

mysql> grant all privileges on testDB.* to test@localhost identified by '패스워드';

 

 

4. 3번의 경우에서 select, insert 권한만 준다고 할땐

 

mysql> grant select, insert on testDB.* to test@localhost identified by '패스워드';

 

 

5. 4번의 경우에서 testTB 라는 테이블의 name,age,email 칼럼에만 update 권한을 부여하고 싶을때

 

mysql> grant update(name,age,email) on testDB.testTB to test@localhost identified by '패스워드';

 

 

6. localhost 외의 여러 일반 호스트에서 로그인하는 사용자일 경우에는 호스트 부분을 %로 처리합니다.

 

외부 호스트에서 로그인할 수 있고 select 권한만 갖는 사용자를 추가할 땐

 

mysql> grant select on testDB.* to test@'%' identified by '패스워드';

 

 

7. ip 주소가 192.168.0 으로 시작하는 컴퓨터에서 로그인하는 사용자를 추가할때

 

mysql> grant all privileges on *.* to test@'192.168.0.%' identified by '패스워드';

 

 

7번의 경우 특정 ip 내에 사용자에 대해 권한을 부여함으로써 LAN 상에서 보안상 이득이 있습니다.

 

mysql> FLUSH PRIVILEGES;