AI·데이터 자격증/SQLD

[SQLD 이론 47] DCL, GRANT·REVOKE·ROLE과 WITH GRANT OPTION·다른 사용자 객체 권한 총정리 (+기출변형문제)

랜덤워크z 2026. 10. 23. 15:01

SQLD 이론 47 DCL

SQLD DCL GRANT·REVOKE 문법, 시스템 권한과 객체 권한, 다른 사용자 테이블 조회 (소유자.테이블), WITH GRANT OPTION·WITH ADMIN OPTION 회수 차이, ROLE 핵심 정리

2과목 마지막 주제! 권한을 주고 회수하는 DCL을 정리할 차례야

60 · 62회에 다른 사용자 객체 조회와 권한 회수 결과 문제가 나왔어

 

SQLD 기초이론 정리 시리즈 47탄!!!

과목 : 2과목 SQL 기본 및 활용

세부 영역 : 관리 구문 - DCL

 

▶ [이론 46] 제약조건 보러가기

 

1. 오늘의 상황

사용자 상황
KIM ORDERS 테이블의 소유자
LEE KIM의 ORDERS를 조회하고 싶은 사용자
PARK LEE에게서 권한을 넘겨받을 사용자

 

2. GRANT와 REVOKE

명령 예시
객체 권한 부여 GRANT SELECT, INSERT ON ORDERS TO LEE;
객체 권한 회수 REVOKE INSERT ON ORDERS FROM LEE;
시스템 권한 부여 GRANT CREATE SESSION, CREATE TABLE TO LEE;
전체 사용자에게 GRANT SELECT ON ORDERS TO PUBLIC;

 

권한 종류 예시
시스템 권한 CREATE SESSION(접속), CREATE TABLE, CREATE VIEW
객체 권한 특정 테이블에 대한 SELECT · INSERT · UPDATE · DELETE

 

새 사용자는 CREATE SESSION 권한이 있어야 DB에 접속(로그인)할 수 있어

 

3. 다른 사용자의 테이블 조회

LEE가 권한을 받은 뒤에도 그냥 ORDERS라고 쓰면 LEE 자신의 테이블을 찾아

→ SELECT * FROM KIM.ORDERS; 처럼 소유자명을 붙여야 해 (또는 시노님 사용)

 

60 · 62회 출제 포인트 : 다른 사용자 객체 조회 SQL, 권한이 없을 때 오류

 

4. 권한을 다시 넘겨주는 옵션

옵션 대상 부여자 권한 회수 시
WITH GRANT OPTION 객체 권한 다른 사람에게 넘긴 권한도 함께 회수 (연쇄 회수)
WITH ADMIN OPTION 시스템 권한 · ROLE 넘긴 권한은 그대로 유지

 

예) KIM: GRANT SELECT ON ORDERS TO LEE WITH GRANT OPTION;

LEE: GRANT SELECT ON KIM.ORDERS TO PARK;

KIM: REVOKE SELECT ON ORDERS FROM LEE; → PARK의 권한도 함께 사라져

 

5. ROLE

여러 권한을 하나로 묶어서 한 번에 주고 회수하는 권한 묶음이야

 

순서 SQL
1. ROLE 생성 CREATE ROLE R_READ;
2. ROLE에 권한 담기 GRANT SELECT ON ORDERS TO R_READ;
3. 사용자에게 ROLE 부여 GRANT R_READ TO LEE;
4. ROLE 회수 REVOKE R_READ FROM LEE;

 

ROLE에는 시스템 권한과 객체 권한을 모두 담을 수 있고, ROLE을 다른 ROLE에 부여할 수도 있어

Oracle 기본 ROLE : CONNECT(접속), RESOURCE(객체 생성) 등

 

[ 최근 기출 출제 포인트 ]

 

회차 출제 포인트
60회 다른 사용자 테이블 조회, GRANT 문법
62회 WITH GRANT OPTION 회수, ROLE 개념

 

[ 자주 묻는 질문 ]

Q. 테이블 소유자는 따로 권한을 받아야 해?

A. 아니야! 소유자는 자기 객체에 대한 모든 권한을 이미 가지고 있어

 

Q. REVOKE 문법에서 TO를 써?

A. 아니야! GRANT … TO, REVOKE … FROM 이야. 시험에서 자주 바꿔 내

 

[ 시험 포인트 정리 ]

 

키워드 핵심
GRANT … TO 권한 부여
REVOKE … FROM 권한 회수
소유자.테이블 다른 사용자 객체 접근
WITH GRANT OPTION 객체 권한, 연쇄 회수
WITH ADMIN OPTION 시스템 권한, 연쇄 회수 X
ROLE 권한 묶음

 

[ 기출변형문제 ]

※ 60~62회 출제 포인트와 출제기준을 바탕으로 새로 만든 변형문제야

(위의 KIM · LEE · PARK 상황 기준, Oracle)

 

Q1. SELECT 권한을 받은 LEE가 KIM의 ORDERS 테이블을 조회하는 SQL로 옳은 것은?

① SELECT * FROM ORDERS;

② SELECT * FROM KIM.ORDERS;

③ SELECT * FROM LEE.ORDERS;

④ SELECT * FROM ORDERS@KIM;

 

Q2. KIM이 LEE에게 WITH GRANT OPTION으로 준 SELECT 권한을 LEE가 PARK에게 넘긴 뒤, KIM이 LEE의 권한을 회수하면 PARK의 권한은?

① PARK 권한은 그대로 유지

② 오류가 발생

③ PARK 권한도 함께 회수

④ PARK에게 ADMIN 권한이 생김

 

Q3. 새로 만든 사용자가 DB에 접속하려면 반드시 필요한 시스템 권한은?

① CREATE SESSION

② CREATE TABLE

③ SELECT ANY TABLE

④ CREATE VIEW

 

Q4. ROLE에 대한 설명으로 옳은 것은?

① ROLE은 다른 ROLE에 부여할 수 없다

② ROLE에는 시스템 권한만 담을 수 있다

③ ROLE 생성은 DML 명령어다

④ 여러 권한을 묶어서 한 번에 부여 · 회수할 수 있다

 

Q5. DCL에 해당하는 명령어 짝은?

① COMMIT, ROLLBACK

② GRANT, REVOKE

③ CREATE, DROP

④ INSERT, DELETE

 


[ 정답 & 해설 ]

 

문항 정답 및 해설
Q1 ② 다른 사용자 객체는 소유자.테이블명으로 (60회 출제 포인트)
Q2 ③ 객체 권한의 WITH GRANT OPTION은 연쇄 회수 (62회 출제 포인트)
Q3 ① CREATE SESSION이 있어야 접속 가능
Q4 ④ ROLE은 권한 묶음, 다른 ROLE에도 부여 가능하고 시스템 · 객체 권한 모두 담을 수 있어
Q5 ② COMMIT · ROLLBACK은 TCL, CREATE · DROP은 DDL, INSERT · DELETE는 DML

 

다음 글부터는 마무리 총정리!

[이론 48] NULL 함정 총정리

▶ [이론 48] NULL 함정 총정리 보러가기

에서 시험에 나오는 NULL 함정을 한 번에 모아볼게!

 

▶ SQLD 기초이론 전체 글 보러가기

▶ SQLD · AI 자격증 스터디 자료 보러가기 (AI DATA 자격증 스터디 클럽)

 

SQLD 준비하시는 분들 모두 화이팅입니다~~~~~ ^^

반응형