GRANT, REVOKE, ROLE, PACKAGE는 데이터베이스의 보안, 권한 관리, 그리고 코드 재사용성을 높이는 데 사용되는 중요한 개념들입니다. SQLD 시험에서는 이 개념들을 정확히 구분하는 문제가 자주 출제됩니다.
GRANT / REVOKE / ROLE)GRANT (권한 부여)ROLE)에게 특정 객체(테이블, 뷰 등)에 대한 접근 권한을 부여하는 명령어입니다.WITH GRANT OPTION 키워드가 부여되면, 권한을 받은 사용자가 다시 다른 사용자에게 그 권한을 줄 수 있습니다.REVOKE (권한 회수)WITH GRANT OPTION으로 권한을 받은 사용자가 다른 사용자에게 권한을 재부여했을 때, 원천 사용자의 권한을 REVOKE하면 그 사용자가 부여한 모든 권한이 **연쇄적으로 회수(CASCADE)**됩니다.ROLE (권한 묶음)ROLE을 만들고 그 ROLE을 사용자에게 부여하면 됩니다.ROLE은 권한의 묶음이라는 것을 정확히 기억해야 합니다.PACKAGE)PACKAGE (코드 묶음)PACKAGE는 코드의 묶음이라는 것을 정확히 기억해야 합니다.ROLE vs PACKAGE:ROLE**은 **권한**의 묶음!PACKAGE**는 **코드**의 묶음!GRANT와 REVOKE의 관계:GRANT ... WITH GRANT OPTION으로 부여된 권한을 REVOKE하면 연쇄적으로 회수됩니다. 이 원리가 시험 문제로 자주 출제됩니다.GRANT → Give (주다)REVOKE → Revoke (철회하다)ROLE → Roll of (권한 묶음)PACKAGE → Package 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. 모듈화 및 재사용성이 뛰어나다.
WITH GRANT OPTION은 부여받은 권한을 재부여할 수 있는 옵션입니다.WITH GRANT OPTION으로 부여된 권한은 원천 사용자의 권한이 REVOKE될 때 연쇄적으로 회수됩니다.ROLE**에 대한 설명입니다. PACKAGE는 코드의 묶음입니다.