GRANT privilege
GRANT privilege (권한 부여)
테이블이나 스키마에 특정 권한을 사용자나 역할에게 부여하는 문법이에요. 읽기·쓰기 권한을 세밀하게 통제하고 싶을 때 사용해요.
출처: 문서
본문
지정된 권한을 지정된 권한 수여자(grantee)에게 부여해요.
ALL PRIVILEGES를 지정하면 DELETE, INSERT, UPDATE, SELECT 권한을 모두 부여해요.
ROLE PUBLIC을 지정하면 PUBLIC 역할에 권한을 부여하므로 결과적으로 모든 사용자에게 권한을 주는 셈이에요.
선택적인 WITH GRANT OPTION 절은 권한 수여자가 이와 동일한 권한을 다른 사람에게도 부여할 수 있게 해요.
GRANT 문이 성공하려면, 실행하는 사용자가 지정된 권한과 그 권한에 대한 GRANT OPTION을 모두 보유하고 있어야 해요.
테이블에 대한 권한 부여는 그 테이블의 현재 및 미래의 모든 컬럼에 지정된 권한을 부여해요. 스키마에 대한 권한 부여는 그 스키마의 현재 및 미래의 모든 테이블의 현재 및 미래의 모든 컬럼에 지정된 권한을 부여해요.
예시
테이블 orders에 INSERT와 SELECT 권한을 사용자 alice에게 부여해요:
GRANT INSERT, SELECT ON orders TO alice;
스키마 finance에 DELETE 권한을 사용자 bob에게 부여해요:
GRANT DELETE ON SCHEMA finance TO bob;
테이블 nation에 SELECT 권한을 사용자 alice에게 부여하되, alice가 다른 사람에게 SELECT 권한을 부여할 수 있게 해요:
GRANT SELECT ON nation TO alice WITH GRANT OPTION;
테이블 orders에 SELECT 권한을 모든 사용자에게 부여해요:
GRANT SELECT ON orders TO ROLE PUBLIC;
테이블 orders의 audit 브랜치에 INSERT 권한을 사용자 alice에게 부여해요:
GRANT INSERT ON BRANCH audit IN orders TO alice;
제한 사항
일부 커넥터는 GRANT를 지원하지 않아요. 자세한 내용은 커넥터 문서를 참고해요.
더 알아보기 (Learn more)
부여한 권한을 어떻게 되돌리는지 궁금하다면 REVOKE privilege를, 현재 누가 어떤 권한을 갖고 있는지 확인하려면 SHOW GRANTS를 살펴보세요.