Mysql 사용자 권한 부여

2015. 12. 6. 10:12DB&NoSQL/MySQL

dbuser 라는 사용자를 TEST와 Live DB 에 생성하고, root 권한 이하의 사용만 가능하도록 함

제한 계정 : dbuser / 1234  


처음에는 테스트 DB에도 root 권한의 dbuser를 생성하려고 했으나,
컬럼 추가/삭제 등의 작업이 임의로 이뤄지게 될 경우, Live 서버와의 싱크 문제로 인해 동일하게 부여 

dbuser는 
select,insert,update,delete의 DML(Data Manipulation Language, 데이터 검색과 수정)권한만 부여 했습니다.
drop,create,alter등의 DDL(Data Definition Language, 데이터 구조 정의) 과
CREATE,REVOKE 등의 DCL(Data Control Language, 권한제어) 권한은 없습니다. 

1. 사용자 추가/삭제 
//내부/외부 접근 권한을 부여 한다. (% & location)
use mysql;
create user  dbuser@'%' identified by '@qlalfqjsgh!'; 
create user  dbuser@localhost identified by '@qlalfqjsgh!'; 
drop user dbuser@'%'; 
drop user dbuser@localhost;

2. 현재 사용자 리스트 확인
use mysql;
select host,user,password from user; 

3. 데이터베이스 접근 권한을 부여한다. 
GRANT 혹은 REVOKE 명령으로 사용자 권한을 추가 제거 하는데 사용하도록 한다.
 // 아래와 같이 하면, 모든 권한을 주는 것이다.(테스트 서버에는 이렇게 드렸습니다.)
GRANT ALL privileges ON *.* to dbuser@'%';
GRANT ALL privileges ON *.* to dbuser@localhost;
flush privileges; 
 // 아래와 같이 하면, 모든 권한을 삭제하는 것이다.
REVOKE ALL ON *.* from dbuser@'%';
REVOKE ALL ON *.* from dbuser@localhost;
 // 그래서 기본적으로 select, insert, update,delete 권한을 부여한다. (LIVE DB에는 여기까지만)
GRANT select,insert,update,delete ON s3.* to dbuser@'%';
GRANT select,insert,update,delete ON image_pool.* to dbuser@'%';
GRANT select,insert,update,delete ON newaddr.* to dbuser@'%';
GRANT select,insert,update,delete ON ums.* to dbuser@'%';

GRANT select,insert,update,delete ON s3.* to dbuser@localhost;
GRANT select,insert,update,delete ON image_pool.* to dbuser@localhost;
GRANT select,insert,update,delete ON newaddr.* to dbuser@localhost;
GRANT select,insert,update,delete ON ums.* to dbuser@localhost;

 //마지막으로 항상, 변경된 내용을 메모리에 반영 한다. 
flush privileges; 

4. 사용자에게 부여된 권한 확인

SHOW GRANTS FOR dbuser@'%';
SHOW GRANTS FOR dbuser@localhost;
SHOW GRANTS FOR dbuser@192.168.1.1;


5. ROOT 계정 패스워드 변경
use mysql;
update user set password=password('[변경할비밀번호]') where user='root';
flush privileges; 

6. 최종 확인 
mysql -udbuser -p 
password입력
show databases; 

확인 가능 

이렇게는 정리 해서 사내 배포 완료....


'DB&NoSQL > MySQL' 카테고리의 다른 글

MYSQL 백업 과 복구  (0) 2015.12.06
MySQL를 다시 시작해봅시다.  (0) 2011.03.10
프로시져를 만들어서 편하게 사용하시죠~~  (1) 2008.06.23