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 |
댓글