Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

EXECUTE AS

ClickHouse Cloud에서 지원되지 않음

다른 사용자 권한으로 쿼리를 실행할 수 있습니다.

구문

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(); -- outputs "default    default"
CREATE USER james;
EXECUTE AS james SELECT currentUser(), authenticatedUser(); -- outputs "james    default"
Navigation