REVOKE privilege
REVOKE privilege (권한 회수)
부여했던 권한을 사용자나 역할에서 되돌리는 문법이에요. GRANT privilege의 반대 연산으로, 필요 없어진 접근 권한을 정리할 때 사용해요.
출처: 문서
본문
지정된 권한을 지정된 권한 수여자(grantee)로부터 회수해요.
ALL PRIVILEGES를 지정하면 DELETE, INSERT, SELECT 권한을 모두 회수해요.
ROLE PUBLIC을 지정하면 PUBLIC 역할에서 권한을 회수해요. 사용자가 직접 또는 다른 역할을 통해 할당받은 권한은 유지돼요.
선택적인 GRANT OPTION FOR 절을 지정하면 GRANT OPTION만 제거돼요. 그렇지 않으면 GRANT와 GRANT OPTION이 모두 회수돼요.
REVOKE 문이 성공하려면, 실행하는 사용자가 지정된 권한과 그 권한에 대한 GRANT OPTION을 모두 보유하고 있어야 해요.
테이블에 대한 회수는 그 테이블의 모든 컬럼에서 지정된 권한을 회수해요. 스키마에 대한 회수는 그 스키마의 모든 테이블의 모든 컬럼에서 지정된 권한을 회수해요.
예시
테이블 orders에서 사용자 alice의 INSERT와 SELECT 권한을 회수해요:
REVOKE INSERT, SELECT ON orders FROM alice;
스키마 finance에서 사용자 bob의 DELETE 권한을 회수해요:
REVOKE DELETE ON SCHEMA finance FROM bob;
테이블 nation에서 모든 사용자의 SELECT 권한을 회수하되, SELECT 권한을 부여할 수 있는 권한도 함께 회수해요:
REVOKE GRANT OPTION FOR SELECT ON nation FROM ROLE PUBLIC;
테이블 test에서 사용자 alice의 모든 권한을 회수해요:
REVOKE ALL PRIVILEGES ON test FROM alice;
테이블 orders의 audit 브랜치에서 사용자 alice의 INSERT 권한을 회수해요:
REVOKE INSERT ON BRANCH audit IN orders FROM alice;
제한 사항
일부 커넥터는 REVOKE를 지원하지 않아요. 자세한 내용은 커넥터 문서를 참고해요.
더 알아보기 (Learn more)
권한을 부여하는 쪽과 짝을 이루는 GRANT privilege, 그리고 현재 권한 상태를 확인하는 SHOW GRANTS를 함께 보면 접근 권한 흐름 전체가 이해돼요.