220519_SQL - DCL 기초

창고·2022년 7월 28일
0

티스토리에 저장했던 글을 옮겼습니다.
https://mrcocoball.tistory.com/51?category=1080971

4. DCL (Data Control Language)

(1) 정의

  • 데이터의 사용 권한을 관리, 무결성 처리 등을 담당
  • GRANTREVOKECOMMITROLLBACK 문 등이 존재

(2) MySQL 사용자 확인, 추가, 비밀번호 변경, 삭제

(Command Line Client Unicode 환경에서 실행)
- 사용자 확인

use mysql;  
select \* from user;  

- 사용자 추가

use mysql;  
  • 로컬에서만 접속 가능한 사용자 생성
create user 'ID명'@localhost identified by '비밀번호';
  • 모든 호스트에서 접속 가능한 사용자 생성
create user 'ID명'@'%' identified by '비밀번호';
  • 사용자 비밀번호 변경
SET PASSWORD FOR 'ID명'@'%' = '신규비밀번호';  
  • 사용자 삭제
use mysql  
drop user 'ID명'@'%';  

(3) MySQL 접속 허용 관련 설정

  • 현재 부여된 권한 확인
SHOW GRANTS for 계정; ('계정명'@'%', '계정명'@'localhost 등)  
  • 로컬에서만 접속 허용
GRANT ALL ON DATABASE.TABLE to '계정명'@localhost;  
  • 특정 권한만 허용 (예시 : SELECTUPDATE 권한, DATABASE.TABLE에 적용)
GRANT 조건 옵션 ON 적용 대상 to 계정;  
GRANT SELECT, UPDATE ON DATABASE.TABLE to 계정;  
  • 옵션 상세
    ALL : 모든 권한
    INSERT, SELECT, UPDATE - 추가, 조회, 수정
    DATABASE.TABLE - 특정 데이터베이스 특정 테이블
    * = 모든 데이터베이스 + 모든 테이블

(4) 예시

ID : test, PW : 1234 계정을 로컬에서만 접속이 가능하게 하고
'TEST' DB의 'ULALA' 테이블에 대해서 INSERT, SELECT, UPDATE 권한을 가지게 허용

use mysql  
create user 'test'@localhost identified by '1234';  
GRANT INSERT, SELECT, UPDATE ON TEST.ULALA to 'test'@localhost;
profile
공부했던 내용들을 모아둔 창고입니다.

0개의 댓글