> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentação da instrução EXECUTE AS

# Instrução EXECUTE AS

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Not supported in ClickHouse Cloud
        </div>;
};

Permite executar consultas em nome de outro usuário.

<div id="syntax">
  ## Sintaxe
</div>

```sql theme={null}
EXECUTE AS target_user;
EXECUTE AS target_user subquery;
```

A primeira forma (sem `subquery`) estabelece que todas as consultas subsequentes na sessão atual serão executadas em nome do `target_user` especificado.

A segunda forma (com `subquery`) executa apenas a `subquery` especificada em nome do `target_user` especificado.

Para que ambas as formas funcionem, é necessário que a configuração `access_control_improvements.allow_impersonate_user`
esteja definida como `1` e que o privilégio `IMPERSONATE` tenha sido concedido. Por exemplo, os seguintes comandos

```sql theme={null}
GRANT IMPERSONATE ON user1 TO user2;
GRANT IMPERSONATE ON * TO user3;
```

permitem que o usuário `user2` execute comandos `EXECUTE AS user1 ...` e também permitem que o usuário `user3` execute comandos como qualquer outro usuário.

Ao assumir a identidade de outro usuário, a função [currentUser()](/pt-BR/reference/functions/regular-functions/other-functions#currentUser) retorna o nome desse outro usuário,
e a função [authenticatedUser()](/pt-BR/reference/functions/regular-functions/other-functions#authenticatedUser) retorna o nome do usuário que foi efetivamente autenticado.

<div id="examples">
  ## Exemplos
</div>

```sql theme={null}
SELECT currentUser(), authenticatedUser(); -- retorna "default    default"
CREATE USER james;
EXECUTE AS james SELECT currentUser(), authenticatedUser(); -- retorna "james    default"
```
