안녕하세요 오늘은 DATABASE DCL에 대한 정리입니다!
점점 머리가 복잡해지고있지만 ㅜㅜ 잘 견뎌내봐야겠지요 ..🥲🫡
DCL 정리를 시작하겠습니다!
DATA CONTROL LANGUAGE
사용자에 대한 권한설정 내용을 말한다.
권한이나 ROLE 부여하는 명령어이다.
- 표현법
GRANT 권한명/ROLE명.권한명/ROLE명, 권한명 ON 테이블 사용자계정명
부여된 권한/ ROLE을 회수하는 명령어이다.
- 표현법
REVOKE 권한명/ROLE형,권한명 ON 테이블명 FROM 사용자계정
권한 : SELECT, INSERT, UPDATE, DELETE, CREATE VIEW....(권한을 주는 계정은 무조건 관리자 계정)
ROLE(역할) : 다수의 권한을 특정이름으로 묶어서 표현
✔️ 관리자계정은 어디든 다 접근할 수 있다
SELECT* FROM BS.EMPLOYEE; -- 앞에 BS.을 붙여서 조회해야함
SELECT* FROM MJ.TEST1;
INSERT INTO MJ.TEST1 VALUES('TEST',19);
ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;
CREATE USER QWER IDENTIFIED BY QWER DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;
SELECT* FROM DBA_USERS;
CONNECT, RESOURCE은 -> ROLE이다.
SELECT*FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURSE';
SELECT*FROM DBA_SYS_PRIVS WHERE GRANTEE='CONNECT';
SELECT* FROM TAB;
SELECT* FROM BS.EMPLOYEE; -- 조회 안됨
🔒 QWER은 조회기능이 부여되지 않았음
GRANT SELECT ON BS.EMPLOYEE TO QWER;
🔓 QWER에게 BS.EMPLOYEE 조회권한을 부여함
SELECT* FROM BS.EMPLOYEE; --조회 OK
GRANT INSERT BS.EMPLOYEE TO QWER;
🔓 추가 입력 권한부여
🔒 권한 회수(관리자 계정에서)
REVOKE INSERT ON BS.EMPLOYEE FROM QWER;
CREATE ROLE MYROLE;
GRANT CREATE TABLE, CREATE VIEW TO MYROLE;
SELECT*FROM DBA_SYS_PRIVS WHERE GRANTEE='MYROLE';
➡️ MYROLE을 관리할 수 있는 권한을 줌
트렌젝션 : 하나의 작업 단위
- 프로그램으로 봤을 때 한개의 서비스를 말함
- DATA(ROW)를 수정하는 INSERT,UPDATE,DELETE세개를 묶어서 작업단위로 관리가 가능하다.
- EMP_DEPT 테이블에 레코드를 추가하고, DEPT_ID가 'D1'인 레코드를 삭제한 후, 최종적으로 TEMP_DEPT 테이블의 모든 레코드를 출력⤵️
INSERT INTO BS.TEMP_DEPT VALUES('D9','TRAN','90'); DELETE FROM BS.TMEP_DEPT WHERE DEPT_ID='D1'; SELECT*FROM BS.TEMP_DEPT;➡️이 세션에서는 보이지만 다른 세션에서는 보이지 않음
COMMIT; 을 해줘야 다른세션에서도 보이게 할 수 있음(최종 저장)의 느낌