메인 콘텐츠로 건너뛰기
다른 사용자 권한으로 쿼리를 실행할 수 있습니다.

구문

EXECUTE AS target_user;
EXECUTE AS target_user subquery;
첫 번째 형식(subquery 없음)은 현재 session에서 이후의 모든 쿼리가 지정된 target_user 권한으로 실행되도록 설정합니다. 두 번째 형식(subquery 포함)은 지정된 subquery만 지정된 target_user 권한으로 실행합니다. 두 형식이 모두 작동하려면 config setting access_control_improvements.allow_impersonate_user1로 설정되어 있어야 하고, IMPERSONATE 권한이 부여되어 있어야 합니다. 예시로, 다음 명령은
GRANT IMPERSONATE ON user1 TO user2;
GRANT IMPERSONATE ON * TO user3;
사용자 user2EXECUTE AS user1 ... 명령을 실행하도록 허용하고, 사용자 user3는 임의의 사용자로 명령을 실행하도록 허용합니다. 다른 사용자를 가장하는 경우 함수 currentUser()는 그 사용자의 이름을 반환하고, 함수 authenticatedUser()는 실제로 인증된 사용자의 이름을 반환합니다.

예시

SELECT currentUser(), authenticatedUser(); -- "default    default" 출력
CREATE USER james;
EXECUTE AS james SELECT currentUser(), authenticatedUser(); -- "james    default" 출력
마지막 수정일 2026년 6월 10일