kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

OS

mysql 사용자 생성 및 권한 설정

까마기 2014. 9. 19. 18:10
728x90
반응형

안녕하세요. 오늘은 mysql 사용자 생성 및 권한 설정에 대해 정리해 보겠습니다.

 

우선 mysql로 접근합니다.

# mysql 또는 # mysql -u root -p 를 통해 접근합니다.

 

1. 권한을 줄 DB를 생성합니다.

> create database db명;

 

2. 사용자 추가

> create user '사용자'@'localhost' identified by '패스워드';

> create user '사용자'@'%' identified by '패스워드';

 

2-1. 사용자 삭제

> drop user '사용자'@'localhost';

> drop user '사용자'@'%';

 

 

3. 사용자 추가 및 사용자가 사용할 DB 설정 (외부접속 시에는 localhost를 %로 변경)

> insert into user(user, host, password, ssl_cipher, x509_issuer, x509_subject) values('user명', 'localhost', password('사용할 패스워드'), ", ", ");

또는.

> insert into user(user, host, password) values('localhost', 'user명', password('사용할 패스워드'));

> insert into user(user, host, password) values('%', 'user명', password('사용할 패스워드'));

 

 

> insert into db values('localhost', 'user명', password('사용할 패스워드'));

 

> flush privileges;

 

3-1. grant 문을 사용하여 사용자에게 DB 권한 주기.

- 일반 사용자 추가

> grant all privileges on dbuser.* to dbuser@localhost identified by 'password' with grant option;

 

- 특정 이름의 데이터베이스에 대한 모든 권한을 가지는 사용자 추가

> grant all privileges on 'dbuser_%'.* to dbuser@localhost identified by 'password' with grant option;

: dbuser로 시작되는 데이터베이스에 대한 모든 권한을 가지는 dbuser 사용자 계정 추가. 위와 같이 계정을 만들면 새로운 사용자에 대한 개별적인 데이터베이스 권한 설정을 생략할 수 있음.

 

- 양식

> grant [부여할 권한] on [대상DB] to [사용자명] identified by '패스워드';

> grant all privileges on *.* to user명@"%" identified by '패스워드' with grant option;

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

> grant all privileges on *.* to user명@"user명@IP주소" identified by '패스워드' with grant option;

 

- localhost가 아니라 외부 또는 특정 호스트에 대한 권한 설정을 하면 다른 호스트에서도 해당 DB에 접근할 수 있고 테이블 추가 삭제 등의 권한설정도 가능합니다.

- 하지만 보통은 터미널 상에서 mysql로 직접 접근하여 사용하는 것보다 DBMS tool을 사용하는 것이 일반적입니다.

 

감사합니다.

반응형