예를 들어 UPDATE 권한을 부여할 수 있는 권한, 그리고 DELETE 권한을 취소하고 싶으면 어떻게 작성해야 하나요?
REVOKE GRANT OPTION FOR UPDATE, DELETE ON 테이블 FROM 유저;
같은 식으로 작성하면 되는 건가요? 또, 예를 들어 (UPDATE, DELETE) 권한을 부여할 수 있는 권한을 취소하려면
REVOKE GRANT OPTION FOR UPDATE, GRANT OPTION FOR DELETE ON 테이블 FROM 유저;
같은 식으로 작성하면 되나요?
-
이*성2024-07-20 13:44:23추가로, 72p의 문제 15에서 아래 답안도 정답으로 인정되는지 문의드립니다. 혹시 잘못된 점이 있나 확인 부탁드립니다. select 상호, 총액 from 거래내역 where 총액 >= all(select 총액 from 거래내역); select 상호, 총액 from 거래내역 where 총액 = (select max(총액) from 거래내역); 또, 아래와 같은 sql문은 잘못된 것인지도 궁금합니다. all 함수나 any 함수 내에는 다중 값이나 서브쿼리만 들어갈 수 있고, 단순히 테이블의 속성명만 지정할 수는 없나요? SELECT 상호, 총액 FROM 거래내역 WHERE 총액 >= ALL(총액); 감사합니다.
-
관리자2024-07-22 20:36:20
안녕하세요 길벗수험서 운영팀입니다.
우선 revoke에 대한 내용을 정리해 보면,
특정 권한에 대한 취소는
예를 들어 update 대한 권한 취소 중
- 단순히 권한만 취소하는 것은 revoke update ~
- 다른 사람에게 부여할 수 있는 권한을 취소하는 것은 revoke grant option for update ~
- 해당 권한과 다른 사람에게 부여할 수 있는 권한을 동시에 취소 revoke update ~
update 권한 자체가 없으면 다른 사람에게 부여할 수 있는 권한도 취소되므로 동시에 취소를 하려면 revoke update ~ 로만 해도 됩니다
질문처럼
udpate는 권한을 부여할 수 있는 권한을 취소하고, delete는 권한 자체만 취소한다면
revoke delete ~
revoke grant option for update ~
이렇게 2번 수행해야 합니다
회원님께서 말씀하신것처럼 한 번에 저렇게 수행하면 grant option for로 모두 인식될 것 같습니다.
72페이지 문제 15번의 경우 말씀하신 아래 식처럼 작성을 하셔도 됩니다
select 상호, 총액 from 거래내역 where 총액 >= all(select 총액 from 거래내역);
select 상호, 총액 from 거래내역 where 총액 = (select max(총액) from 거래내역);
all( ) 은 하위 질의로 검색된 범위를 기본 질의의 조건으로 사용하는데 아래 식처럼 작성하게 되면 구문오류가 발생합니다.
SELECT 상호, 총액 FROM 거래내역 WHERE 총액 >= ALL(총액);
행복한 하루되세요 :)