<자격증>/[SQLD]

SQLD 자격검증실전문제 122번 문제

9566 2023. 3. 19. 15:59
728x90

 

Lee: GRANT SELECT, INSERT, DELETE ON R TO Kim WITH GRANT OPTION;
Kim: GRANT SELECT, INSERT, DELETE ON R TO Park;
Lee: REVOKE DELETE ON R FROM Kim;
Lee: REVOKE INSERT ON R FROM Kim CASCADE;

 

1 Park: SELECT * FROM R WHERE A = 400;

2 Park: INSERT INTO R VALUES(400, 600);

3 Park: DELETE FROM R WHERE B=800;

4 Kim: INSERT INTO R VALUES(500, 600);

이후에 실행 가능한 SQL은 다음과 같습니다.

  1. Park: SELECT * FROM R WHERE A = 400;: Park은 R 릴레이션에서 A 값이 400인 행을 조회할 수 있습니다. 이는 Kim이 SELECT 권한을 가지고 있으며, 이 권한이 Park에게 그대로 부여되었기 때문입니다.
  2. Park: INSERT INTO R VALUES(400, 600);: 이 SQL은 실행되지 않습니다. Kim은 R 릴레이션에 INSERT 권한을 가지고 있지만, Lee가 Kim에게 부여한 권한은 GRANT OPTION을 포함하고 있지 않습니다. 따라서 Kim은 권한을 부여할 수 없으며, 따라서 이 SQL은 실행되지 않습니다.
  3. Park: DELETE FROM R WHERE B=800;: 이 SQL은 실행됩니다. Kim은 R 릴레이션에서 DELETE 권한을 가지고 있기 때문입니다.
  4. Kim: INSERT INTO R VALUES(500, 600);: 이 SQL은 실행됩니다. Kim은 R 릴레이션에서 INSERT 권한을 가지고 있기 때문입니다. Lee가 Kim에게 부여한 권한은 GRANT OPTION을 포함하고 있지 않습니다. 따라서 Kim은 권한을 부여할 수 없으며, 이 SQL은 실행됩니다.
728x90