[정보처리산업기사] 79강 DCL

DongHo Im·2022년 1월 28일
0

정보처리산업기사

목록 보기
79/86

1. DCL(Data Control Language)의 개념

DCL(데이터 제어어)는 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어

  • DCL은 DBA가 데이터 관리 목적으로 사용

2. GRANT/REVOKE

  • 데이터베이스 관리자가 사용자에게 권한 부여 혹은 취소하기 위한 명령어

  • GRANT

    • 데이터베이스 관리자가 사용자에게 권한 부여
  • REVOKE

    • 데이터베이스 관리자가 사용자에게 권한 취소
  • 사용자 등급 지정 및 해제 표기법
    GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
    REVOKE 사용자등급 FROM 사용자_ID_리스트

// 사용자 ID가 '테스트' 인 사람에게 데이터베이스 및 테이블 생성 권한 부여 SQL
GRANT RESOURCE TO 테스트

// 사용자 ID가 '인간' 인 사람에게는 단순 정보 검색할 수 있는 권한 부여 SQL
GRANT CONNECT TO 인간
  • 테이블 및 속성에 대한 권한 부여 및 취소
    GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
    REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];

    • 권한 종류: ALL, SELECT, INSERT, DELETE, UPDATE, ALTER
    • WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여
    • GRANT FOR OPTION : 다른 사용자에게 권한을 부여하는 권한 취소
    • CASCADE : 권한을 부여받았던 사용자가 타 사용자에게 부여한 권한도 연쇄적으로 취소

3. COMMIT

트랜잭션이 성공적으로 끝난 후 변경된 내용을 데이터베이스에 반영

  • COMMIT 명령을 실행하지 않아도 DML문이 성공적으로 완료되면 자동으로 커밋되고, DML이 실패하면 자동으로 ROLLBACK이 되도록 AUTO_COMMIT 설정 가능

4. ROLLBACK

COMMIT 되지 않은 변경된 내용을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령


5. SAVEPOINT

트랜잭션 내에 ROLLBACK 할 위치인 저장점을 저장

  • 저장점을 지정할 때는 이름을 부여하며, 롤백 시 지정된 저장점까지의 트랜잭션 처리 내용이 취소된다.

  • 표기법
    SAVEPOINT 사용할 세이브포인트 명칭
    ROLLBACK TO 돌아갈 세이브포인트 명칭

INSERT INTO TAB1 VALUES(1);				/*COL1 : 1 */
INSERT INTO TAB1 VALUES(2);				/*COL1 : 1,2 */
SAVEPOINT SV1;						/*COL1 : 1,2 */
UPDATE TAB1 SET COL1=4 WHERE CO1=2;			/*COL1 : 1,4 */
SAVEPOINT SV1;						/*COL1 : 1,4 */
DELETE TAB1 WHERE COL1>=2;				/*COL1 : 1 */
ROLLBACK TO SV1;					/*COL1 : 1,2  맨 처음 지정한 SV1으로 ROLLBACK*/
INSERT INTO TAB1 VALUES(3);				/*COL1 : 1,3 */
SELECT MAX(COL1) FROM TAB1;				/*MAX(COL1) : 3 */
profile
[DATABASE] 비전공자 출신의 개발 도전!

0개의 댓글