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

> Documentation sur l’instruction EXECUTE AS

# Instruction 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>
            Non pris en charge par ClickHouse Cloud
        </div>;
};

Permet d’exécuter des requêtes pour le compte d’un autre utilisateur.

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

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

La première forme (sans `subquery`) définit que toutes les queries suivantes de la `session` en cours seront exécutées au nom du `target_user` spécifié.

La seconde forme (avec `subquery`) exécute uniquement la `subquery` spécifiée au nom du `target_user` spécifié.

Pour fonctionner, les deux formes nécessitent que le paramètre de config `access_control_improvements.allow_impersonate_user`
soit défini sur `1` et que le privilège `IMPERSONATE` soit accordé. Par exemple, les commandes suivantes

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

autoriser l’utilisateur `user2` à exécuter des commandes `EXECUTE AS user1 ...` et autoriser également l’utilisateur `user3` à exécuter des commandes en tant que n’importe quel utilisateur.

Lorsqu’un utilisateur emprunte l’identité d’un autre utilisateur, la fonction [currentUser()](/fr/reference/functions/regular-functions/other-functions#currentUser) renvoie le nom de cet autre utilisateur,
et la fonction [authenticatedUser()](/fr/reference/functions/regular-functions/other-functions#authenticatedUser) renvoie le nom de l’utilisateur effectivement authentifié.

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

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