230320 DB_DCL (GRANT, REVOKE)

Myung A Lee·2023년 3월 20일
0

DB

목록 보기
2/15
post-thumbnail

DCL : Data Control Language

데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어들을 말함.

User 생성

  • CREATE USER [유저이름]@[접근가능IP] IDENTIFIED BY [비밀번호]

  • web_user는 모든 Ip에서 접근 가능하고, 비밀번호는 pass이다.
    ex) create user 'web_user'@'%' identified by 'password';

  • dba_user는 모든 192.168로 시작하는 IP에서 접근 가능하고, 비밀번호는 pass이다.
    ex) create user 'dba_user'@'192.168.%' identified by 'pass';

  • user002는 192.168.12.32 Ip에서 접근 가능하고 비밀번호는 pass이다.
    ex) create user 'user002'@'192.168.12.32' identified by 'pass';

  • 생성된 유저 확인
    ex) select * from mysql.user;

권한 설정

권한 부여

GRANT [권한1,권한2,...] ON [데이터베이스.테이블] TO [사용자]

  • web_user에게 모든 데이터베이스, 테이블에서 사용가능한 ALL 권한을 부여한다.
    - all privileges : grant option 을 제외한 모든 권한
    - grant option : 권한 부여 (내가 가진 것 이상으로 권한을 부여할 수는 없다. )
    - ex) grant all privileges on . to 'web_user'@'%';

  • dba_user에게 mysql 데이터 베이스의 모든 테이블에서 사용가능한 select 명령어 권한을 부여한다.
    - 특정 명령어들(select, update, insert, create, drop 등)
    - ex) grant select on mysql.* to 'dba_user'@'192.168.%';

  • user002는 모든 데이터베이스, 모든 테이블에서 select,update,insert,delete 권한을 갖는다.
    - ex) grant select,insert,update,delete on . to 'user002'@'192.168.12.32';

  • 권한 확인
    ex) select * from mysql.user;

권한 회수

REVOKE [권한] ON [데이터베이스.테이블] FROM [유저]

  • ex) revoke insert,update,delete on . from 'user002'@'192.168.12.32';

사용자 비밀번호 재생성

set password for [사용자] = PASSWORD([비밀번호])

  • 단, Root 계정의 경우 불가능 하다.
    - ex) set PASSWORD for 'dba_user'@'192.168.%' = password('1234');
    - ex) set PASSWORD for 'web_user'@'%' = password('pass');

사용자 삭제

drop user [유저]
- ex) drop user 'dba_user'@'192.168.%';
- drop user 'user002'@'192.168.12.32';

0개의 댓글