2020년/정처기
[2020 정보처리기사 실기] Section 08.SQL 응용(DCL)
위지원
2020. 4. 28. 17:52
이전글
2020/04/28 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 08. SQL 응용(DDL)
SQL DCL
1.DCL(Data Control Language, 데이터 제어어)
데이터의 보안, 무결성등을 정의하는데 사용하는 언어
GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT등
- GRANT/ REVOKE
사용자 권한 부여(GRANT:부여,REVOKE:취소)
사용자 등급 지정 및 해제
GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트;
@EXAMPLE
GRANT RESOURCE TO JIWON;
GRANT CONNECT TO JIWON;
*등급
DBA : 관리자
RESOURCE : 데이터베이스 및 테이블 생성 가능자
CONNECT : 단순 사용자
테이블 및 속성에 대한 권한 부여 및 취소
GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE[GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자[CASCADE];
*WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여
*GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소
*권한 리스트 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER등
#EXAMPLE
GRANT ALL ON 고객 TO JIWON WITH GRANT OPTION;
REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM JIWON;
- COMMIT
트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성상태를 가지기 위해 반영해야함
*Auto Commit:성공하면 Commit 실패하면 Rollback 자동
- Oracle:
- set autocommit on;
- set autocommit off;
- show autocommit;
- MySql
- set autocommit = true;
- set autocommit = false;
- select @@autocomit;
- SAVEPOINT
트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어
<사원>
사원번호 | 이름 |부서
10 |위지원|기획부
20 |위지투|인사부
30 |위지쓰|재무부
40 |위지포|영업부
DELETE * FROM 사원 WHERE 사원번호=40;
COMMIT;
10 |위지원|기획부
20 |위지투|인사부
30 |위지쓰|재무부
DELETE * FROM 사원 WHERE 사원번호=30;
10 |위지원|기획부
20 |위지투|인사부
SAVEPOINT S1;
DELETE * FROM 사원 WHERE 사원번호=20;
<사원>
사원번호 | 이름 |부서
10 |위지원|기획부
SAVEPOINT S2;
DELETE * FROM 사원 WHERE 사원번호=10;
<사원>
아무것도없지롱
ROLLBACK TO S2;
<사원>
사원번호 | 이름 |부서
10 |위지원|기획부
ROLLBACK TO S1;
<사원>
사원번호 | 이름 |부서
10 |위지원|기획부
20 |위지투|인사부
ROLLBACK
<사원>
사원번호 | 이름 |부서
10 |위지원|기획부
20 |위지투|인사부
30 |위지쓰|재무부
**위지포를 삭제하고서 COMMIT을 했기때문에 위지쓰까지만 ROLLBACK
다음글
2020/04/28 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기]Section 08. SQL 응용(SELECT)