SQL(DCL)

dev_shu·5일 전
0

DB

목록 보기
8/14

DCL

  • Data Control Language의 약자.
  • 데이터베이스에 대한 접근 권한과 관련된 문법
  • 유저가 데이터베이스에 접근할 수 있는 권한 설정
  • 종류: GRANT, REVOKE
  • 권한: 테이블을 생성하거나 삭제, 수정, 데이터 추가, 삭제, 수정, 조회를 할 수 있는 권한

1. GRANT

  • 사용자에게 데이터베이스 권한을 부여해줌
  • 형식
    • 권한부여: GRANT [권한] ON [DB명].[TABLE명] TO [ID]@[HOST]
    • 사용자 등록과 동시에 권한부여: GRANT [권한] ON [DB명].[TABLE명] TO [ID]@[HOST] IDENTIFIED BY [비밀번호]
    • 권한확인: SHOW GRANTS FOR [ID]@[HOST]

2. REVOKE

  • 유저에게 부여한 권한 취소
  • 형식
    • REVOKE [권한] ON [DB].[TABLE] FROM [ID]@[HOST]

3. 예제

  • 사용자 계정 추가 및 권한부여
# 유저정보확인
mysql> select user,host from user;
# 유저생성및 권한부여
# *.* 모든 데이터베이스와 테이블에 컨트롤 할 수 있는 권한
mysql> grant all privileges on *.* 'siwoo'@'localhost' identified by '비밀번호';
# 추가한 유저가 생성됐는지 확인
mysql> select user, host, plugin from user;
# 계정의 권한정보 확인
mysql> show grants for siwoo@localhost;
# 해당 계정의 권한 취소
mysql> revoke all privileges on *.* from siwoo@localhost;
# 선택적 권한 주기, 모든 데이터베이스와 테이블의 조회 및 추가권한 부여
mysql> grant select, insert on *.* to siwoo@localhost;
# 선택적으로 준 권한 부여 취소
mysql> revoke select, insert on *.* from siwoo@localhost;
# 계정삭제
mysql> drop user siwoo@localhost;
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글