GRANT 문을 이용한 사용자 및 권한 관리

 

 

 

 

 

▶ 모든 권한 주기

mysql> grant all privileges on *.* to 사용자명@호스트
     -> identified by '비밀번호' with grant option;

▶ 특정 사용자에게 특정 DB의 모든 테이블에 모든 권한 부여하기

mysql> grant all privileges on DB명.* to 사용자명@호스트 identified by '비밀번호';

▶ 특정 사용자에게 특정 DB의 모든 테이블에 select, insert 권한 부여하기

mysql> grant select, insert on DB명.* to 사용자명@호스트 
     -> identified by '비밀번호';

▶ 특정 사용자에게 특정 DB의 특정 테이블의 정해준 컬럼에만 update 권한 부여하기

mysql> grant update(컬럼1,컬럼2,컬럼3) on DB명.테이블명 to 사용자명@호스트
     -> identified by '비밀번호';

▶ 모든 호스트에서 접속가능하고 select 권한만 갖는 사용자를 추가할 땐

mysql> grant select on DB명.* to 사용자명@% identified by '비밀번호';

▶ ip주소가 192.168.0.으로 시작하는 컴퓨터에서 접속가능한 사용자를 추가할 땐

mysql> grant all privileges on *.* to 사용자명@'192.168.0.%' identified by '비밀번호';


▶ 모든 권한 삭제

mysql> REVOKE ALL PRIVILEGES ON *.* FROM 사용자명@호스트;

▶ usage (삭제하면 로그인조차 안됨) 권한 부여, 삭제

usage 권한 부여 mysql> GRANT USAGE ON *.* TO USER_NAME@HOST IDENTIFIED BY 'USER_NAME'; usage 권한 삭제 mysql> REVOKE USAGE ON *.* FROM USER_NAME@HOST;


▶ 권한 확인하기

mysql> SHOW GRANTS FOR 사용자명;
▶ 사용자 삭제 
mysql> drop user 사용자명@호스트;
▶ 변경사항 적용
mysql> flush privileges;
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

MySQL Database 를 사용함에 있어서 사용자를 추가하는 예제

 

사용자를 추가하기 위해 user 테이블에 항목을 추가하는 방법을 사용할 수 있으나
여러가지 오류를 발생 시킬 수 있으므로 권하지 않습니다.

따라서 GRANT 문을 이용하여 사용자 계정을 추가하는 방법을 설명합니다.

GRANT 명령문은 사용자 계정에 권한을 부여하는 명령으로 특정 사용자에게 특정 데이터베이스에 대한 권한을 설정할 수 있습니다.

 

 


이제 test_user 라는 사용자를 만들고 이 사용자의 비밀번호를 '1234'로 설정하고 my_database에 대한 모든 권한을 부여하는 방법을 설명하겠습니다.

우선 root 권한으로 MySQL DB 에 접속 합니다.

mysql -u root -p

비밀번호를 묻는 프롬프트가 나오면 비밀번호를 입력한 후 접속합니다.


접속 후 my_database 라는 DB 를 만들어 봅니다.

create database my_database;

사용자 생성 및 권한을 부여합니다.

grant all privileges on my_database.* to test_user@localhost identified by '1234' with grant option;


상기 명령으로 생성된 유저는 localhost 에서의 접속만 허용하게 됩니다.
이 부분에 별도의 IP 나 hostname 을 주게되면 해당 IP 혹은 hostname 에서만 접속이 가능하게
됩니다.

만약 이부분을 '%' 로 지정하게 된다면, 모든 원격지에서의 접근이 가능해지게 됩니다.

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

MySQL Database 를 사용함에 있어서 사용자를 추가하는 예제

 

사용자를 추가하기 위해 user 테이블에 항목을 추가하는 방법을 사용할 수 있으나
여러가지 오류를 발생 시킬 수 있으므로 권하지 않습니다.



따라서 GRANT 문을 이용하여 사용자 계정을 추가하는 방법을 설명합니다.

GRANT 명령문은 사용자 계정에 권한을 부여하는 명령으로 특정 사용자에게 특정 데이터베이스에 대한 권한을 설정할 수 있습니다.

이제 test_user 라는 사용자를 만들고 이 사용자의 비밀번호를 '1234'로 설정하고 my_database에 대한 모든 권한을 부여하는 방법을 설명하겠습니다.

우선 root 권한으로 MySQL DB 에 접속 합니다.

mysql -u root -p

비밀번호를 묻는 프롬프트가 나오면 비밀번호를 입력한 후 접속합니다.

 




접속 후 my_database 라는 DB 를 만들어 봅니다.

create database my_database;

사용자 생성 및 권한을 부여합니다.

grant all privileges on my_database.* to test_user@localhost identified by '1234' with grant option;


상기 명령으로 생성된 유저는 localhost 에서의 접속만 허용하게 됩니다.
이 부분에 별도의 IP 나 hostname 을 주게되면 해당 IP 혹은 hostname 에서만 접속이 가능하게
됩니다.

만약 이부분을 '%' 로 지정하게 된다면, 모든 원격지에서의 접근이 가능해지게 됩니다.

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,