카테고리 없음

mysql 유저생성하기 권한주기 !

까마귀코딩 2023. 2. 15. 16:23

MySQL 사용자(user) 조회

MySQL의 사용자 목록을 조회하기 위해서 MySQL의 기본 스키마인 mysql안에 user 테이블에서 아래와 같은 명령어를 통해 조회할 수 있다.

use mysql;	# mysql 스키마 선택

select user, host from user;	# 사용자 목록 조회

 

 

 

사용자 생성

사용자 생성시에는 create 명령어를 사용해서 사용자를 추가할 수 있다. 경우에 맞게 example을 참고해서 사용하면 될 것 같다. 나의 경우 내부 접근만 가능하도록 만들기 위해 ex1 명령어를 활용했다.

create user '사용자'@'host' identified by '비밀번호';

# ex1) 내부 접근을 허용하는 사용자 추가
create user 'test'@'localhost' identified by '0000';

# ex2) 외부 접근을 허용하는 사용자 추가
create user 'test'@'%' identified by '0000';

# ex3) 특정 ip만 접근을 허용하는 사용자 추가
create user 'test'@'123.456.789.100' identified by '0000';

# ex4) 특정 ip 대역을 허용하는 사용자 추가
create user 'test'@'192.168.%' identified by '0000';

 

 

 

사용자 제거

아래 drop 혹은 delete 명령어를 통해 사용자를 삭제할 수 있다.

drop user '사용자';
# or
delete from user where user='사용자';


# example
drop user 'test'@'localhost';

 

 

 

사용자 권한 부여

사용자에게 권한을 줄 때는 grant명령어를 통해 권한을 줄 수 있다. 아래 명령어들을 참고하면 좋을 것 같다.

# 모든 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on *.* to '사용자'@'localhost';

# 특정 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on DB이름.* to '사용자'@'localhost';

# 특정 데이터베이스의 특정 테이블에 모든 권한을 줌
grant all privileges on DB이름.테이블명 to '사용자'@'localhost';

# 특정 데이터베이스의 특정 테이블에 select 권한을 줌
grant select on DB이름.테이블명 to '사용자'@'localhost';

# 특정 데이터베이스의 특정 테이블에 select, insert 권한을 줌
grant select, insert on DB이름.테이블명 to '사용자'@'localhost';

# 특정 데이터베이스의 특정 테이블의 컬럼1과 컬럼2의 update 권한을 줌
grant update(컬럼1, 컬럼2) on DB이름.테이블명 to '사용자'@'localhost';

 

 

 

 

사용자 생성과 권한 부여 한번에 하기

아래 명령어를 사용하면 사용사 생성과 동시에 권한 부여를 한번에 할 수 있다.

grant all privileges on *.* to '사용자'@'localhost' identified by '비밀번호';

# example
grant all privileges on *.* to 'test'@'localhost' identified by '0000';

 

 

 

권한 반영

변경한 권한을 즉시 반영시켜주려면 아래 명령어를 실행시켜주면 된다.

FLUSH PRIVILEGES;