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

> Documentation sur rôle

# CREATE ROLE

Crée un ou plusieurs [rôles](/fr/concepts/features/security/access-rights#role-management). Un rôle est un ensemble de [privilèges](/fr/reference/statements/grant#granting-privilege-syntax). Un [utilisateur](/fr/reference/statements/create/user) auquel un rôle est attribué obtient tous les privilèges associés à ce rôle.

Syntaxe :

```sql theme={null}
CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER cluster_name]
    [IN access_storage_type]
    [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [CONST|READONLY|WRITABLE|CHANGEABLE_IN_READONLY] | PROFILE 'profile_name'] [,...]
```

<div id="managing-roles">
  ## Gestion des rôles
</div>

Un utilisateur peut se voir attribuer plusieurs rôles. Les utilisateurs peuvent appliquer leurs rôles attribués dans des combinaisons arbitraires à l’aide de l’instruction [SET ROLE](/fr/reference/statements/set-role). La portée finale des privilèges correspond à l’ensemble cumulé de tous les privilèges de tous les rôles appliqués. Si des privilèges sont accordés directement à son compte utilisateur, ils sont également cumulés avec les privilèges accordés par les rôles.

Un utilisateur peut avoir des rôles par défaut, qui s’appliquent lors de sa connexion. Pour définir les rôles par défaut, utilisez l’instruction [SET DEFAULT ROLE](/fr/reference/statements/set-role#set-default-role) ou l’instruction [ALTER USER](/fr/reference/statements/alter/user).

Pour révoquer un rôle, utilisez l’instruction [REVOKE](/fr/reference/statements/revoke).

Pour supprimer un rôle, utilisez l’instruction [DROP ROLE](/fr/reference/statements/drop#drop-role). Le rôle supprimé est automatiquement révoqué pour tous les utilisateurs et rôles auxquels il était attribué.

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

```sql theme={null}
CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;
```

Cette suite de requêtes crée le rôle `accountant`, qui dispose du privilège de lire les données de la base de données `db`.

Attribution du rôle à l’utilisateur `mira` :

```sql theme={null}
GRANT accountant TO mira;
```

Une fois le rôle attribué, l'utilisateur peut l'utiliser et exécuter les requêtes autorisées. Par exemple :

```sql theme={null}
SET ROLE accountant;
SELECT * FROM db.*;
```
