DB 권한 제어 및 객체 관리 개념

TJK·2025년 8월 22일

GRANT / REVOKE / ROLE / PACKAGE 정리

GRANT, REVOKE, ROLE, PACKAGE는 데이터베이스의 보안, 권한 관리, 그리고 코드 재사용성을 높이는 데 사용되는 중요한 개념들입니다. SQLD 시험에서는 이 개념들을 정확히 구분하는 문제가 자주 출제됩니다.


1. 권한 관련 (GRANT / REVOKE / ROLE)

GRANT (권한 부여)

  • 개념: 사용자 또는 역할(ROLE)에게 특정 객체(테이블, 뷰 등)에 대한 접근 권한을 부여하는 명령어입니다.
  • 시험 핵심:
    • WITH GRANT OPTION 키워드가 부여되면, 권한을 받은 사용자가 다시 다른 사용자에게 그 권한을 줄 수 있습니다.

REVOKE (권한 회수)

  • 개념: 기존에 부여한 권한을 회수하는 명령어입니다.
  • 시험 핵심 (★★★★★):
    • WITH GRANT OPTION으로 권한을 받은 사용자가 다른 사용자에게 권한을 재부여했을 때, 원천 사용자의 권한을 REVOKE하면 그 사용자가 부여한 모든 권한이 **연쇄적으로 회수(CASCADE)**됩니다.

ROLE (권한 묶음)

  • 개념: 여러 개의 권한을 하나로 묶어 관리하는 논리적인 그룹입니다.
  • 장점: 관리의 효율성을 높여줍니다. 여러 권한을 개별적으로 부여하는 대신, ROLE을 만들고 그 ROLE을 사용자에게 부여하면 됩니다.
  • 시험 핵심: ROLE권한의 묶음이라는 것을 정확히 기억해야 합니다.

2. 코드 관련 (PACKAGE)

PACKAGE (코드 묶음)

  • 개념: 오라클 PL/SQL에서 관련된 프로시저, 함수, 변수 등을 하나로 묶어 관리하는 객체입니다.
  • 구성:
    • 명세부 (Specification): 패키지의 외부 인터페이스를 정의합니다. (함수/프로시저의 이름, 매개변수 등)
    • 본문부 (Body): 명세부에서 선언된 기능들의 실제 구현 코드가 들어갑니다.
  • 장점: 모듈화, 재사용성, 유지보수 용이성 측면에서 유리합니다.
  • 시험 핵심: PACKAGE코드의 묶음이라는 것을 정확히 기억해야 합니다.

3. SQLD 시험 핵심 포인트

  • ROLE vs PACKAGE:
    • **ROLE**은 **권한**의 묶음!
    • **PACKAGE**는 **코드**의 묶음!
  • GRANTREVOKE의 관계:
    • GRANT ... WITH GRANT OPTION으로 부여된 권한을 REVOKE하면 연쇄적으로 회수됩니다. 이 원리가 시험 문제로 자주 출제됩니다.

4. 암기 팁

  • GRANTGive (주다)
  • REVOKERevoke (철회하다)
  • ROLERoll of (권한 묶음)
  • PACKAGEPackage of (코드 묶음)

실전 기출 문제 스타일

1. 다음 중 WITH GRANT OPTION 키워드에 대한 설명으로 옳은 것은?
A. 권한을 받은 사용자가 다른 사용자에게 받은 권한을 다시 부여할 수 없게 한다.
B. 권한 부여 시 사용자의 패스워드를 함께 지정한다.
C. 부여된 권한을 다른 사용자에게 재부여할 수 있는 권한을 함께 부여한다.
D. 권한 부여 시 특정 IP 주소에서만 접속 가능하도록 제한한다.

2. 다음 SQL 실행 결과로 올바른 설명은?
(User1은 User2에게 SELECT 권한을 부여함)

REVOKE SELECT ON product FROM User1;

A. User1의 SELECT 권한만 회수되고 User2는 SELECT 권한이 유지된다.
B. User1과 User2의 SELECT 권한이 모두 회수된다.
C. User1의 SELECT 권한은 회수되지만, User2의 권한은 직접 회수해야 한다.
D. REVOKE 명령에 CASCADE 옵션이 없으므로 User2의 권한은 유지된다.

3. 다음 중 PACKAGE에 대한 설명으로 옳지 않은 것은?
A. 관련된 프로시저와 함수를 하나로 묶어 관리한다.
B. 명세부와 본문부로 구성된다.
C. 데이터베이스의 관리 효율성을 위해 여러 권한을 묶어서 관리한다.
D. 모듈화 및 재사용성이 뛰어나다.


정답 및 해설

  • 문제 1 정답: C
    • 해설: WITH GRANT OPTION은 부여받은 권한을 재부여할 수 있는 옵션입니다.
  • 문제 2 정답: B
    • 해설: WITH GRANT OPTION으로 부여된 권한은 원천 사용자의 권한이 REVOKE될 때 연쇄적으로 회수됩니다.
  • 문제 3 정답: C
    • 해설: 여러 권한을 묶어서 관리하는 것은 **ROLE**에 대한 설명입니다. PACKAGE는 코드의 묶음입니다.
profile
Hello world!

0개의 댓글