Crée un ou plusieurs rôles. Un rôle est un ensemble de privilèges. Un utilisateur auquel un rôle est attribué obtient tous les privilèges associés à ce rôle.
Syntaxe :
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'] [,...]
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. 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 ou l’instruction ALTER USER.
Pour révoquer un rôle, utilisez l’instruction REVOKE.
Pour supprimer un rôle, utilisez l’instruction DROP ROLE. Le rôle supprimé est automatiquement révoqué pour tous les utilisateurs et rôles auxquels il était attribué.
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 :
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 :
SET ROLE accountant;
SELECT * FROM db.*;
Dernière modification le 25 juin 2026