본문 바로가기
DB/MySQL

4.4 MySQL 보안 설정

by 가므자 2012. 2. 22.

ROOT 사용자의 데이터 보안
ROOT 패스워드 설정하기
use mysql
update user set password=password('12345') where user ='root';


슈퍼유저(ROOT) 패스워드 변경 2가지
set password 사용
set password for
root@localhost=password('12345');


사용자 생성 및 권한 부여
①create 문으로 user 생성하기
create user 사용자명 identified by '비밀번호';

create user choi identified by 'choi123';
create user 
lee@localhost identified by 'lee123';

User테이블 확인
select host, user, password from user;


choi는 host 명이 "%"이므로 localhost 아닌 원격에서 접속이 가능하고
lee는 localhose에서만 데이터베이스를 사용할 수 있다.


②사용자 권한부여
[형식1] grant all privileges on 데이터베이스명.* to 사용자명;

[형식2] grant 부여할 권한 SQL 명령문 on 데이터베이스명.* to 사용자명;


grant select, insert, update, delete on haksa.* to lee@localhost; #'lee'에게 'haksa' 데이터베이스를 select, insert, update, delete할 수 있는 권한을 부여함.

grant all privileges on haksa.* to choi; # choi에게 haksa 데이터베이스를 관리할 수 있는 모든 권한을 부여한 경우.
grant all privileges on *.* to lee@localhost; # 'lee'는 모든 데이터베이스를 모든 권한을 가지고 관리할 수 있도록 DBA의 권한을 부여한것과 같다.

③사용자 권한 회수
[형식] revoke SQL 명령문 on DB명.* from '해당 유저이름';

revoke select on haksa.* from
choi@'%'; #데이터베이스에서 select 할 수 있는 권한을 회수
revoke select, update on haksa.* from
lee@'localhost'; #데이터베이스에서 select, update 할 수 잇는 권한을 회수

flush privileges;

권한 회수 확인
select host, db, user, select_priv, update_priv from db;


④사용자 삭제
[형식1] drop user '해당 유저이름';
  #"user" 테이블과 "db"테이블에서 완전히 해당유저를 삭제
[형식2] delete from user where user='해당유저이름';  #"user" 테이블에서 해당유저를 삭제
[형식3] delete from db where user='해당유저이름';  #"db" 테이블에서 해당유저에게 부여된 데이터베이스의 권한을 삭제

생성된 사용자가 데이터베이스 권한을 알 수 있는 "db" 테이블의 정보
desc db;

drop user 'choi';
drop user 'haksa_admin';
drop user 'test_user';
drop user 'lee';
delete from user where user='haksa_admin';
delete from user where user='test_user';
delete from db where user='haksa_admin';
delete from db where user='test_user';
drop user
kim@localhost;


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

4장 연습 문제  (0) 2012.02.23
4.3.4 질의(Query)  (0) 2012.02.23
4.3.6 뷰(Views)  (0) 2012.02.22
인덱스 생성 명령문  (0) 2012.02.22
4.3 학사관리 예제 만들기  (0) 2012.02.22

댓글