DROP ROLE — Supprimer un rôle de base de données
DROP ROLE [ IF EXISTS ] nom
[, ...]
DROP ROLE
supprime le(s) rôle(s) spécifié(s).
Seul un superutilisateur peut supprimer un rôle de superutilisateur.
Un utilisateur doit posséder l'attribut CREATEROLE
pour supprimer un rôle et avoir reçu l'option ADMIN
OPTION
sur ce rôle.
Un rôle ne peut pas être supprimé s'il est toujours référencé dans une base
de données du groupe. Dans ce cas, toute tentative aboutit à l'affichage
d'une erreur. Avant de supprimer un rôle, il est nécessaire de supprimer
au préalable tous les objets qu'il possède (ou de modifier leur appartenance)
et de supprimer tous les droits définis par ce rôle sur d'autres objets.
Les commandes REASSIGN
OWNED
et DROP
OWNED
peuvent être utiles pour cela. Voir Section 22.4 pour plus de discussions sur ce sujet.
Néanmoins, il n'est pas nécessaire de supprimer toutes les appartenances de
rôle impliquant ce rôle ; DROP ROLE
supprime automatiquement
toute appartenance du rôle cible dans les autres rôles et des autres rôles dans
le rôle cible. Les autres rôles ne sont pas supprimés ou affectés.
IF EXISTS
Ne pas renvoyer une erreur si l'agrégat n'existe pas. Un message d'avertissement est affiché dans ce cas.
nom
Le nom du rôle à supprimer.
PostgreSQL inclut un programme dropuser qui a la même fonctionnalité que cette commande (en fait, il appelle cette commande) mais qui est lancé à partir du shell.
Supprimer un rôle :
DROP ROLE jonathan;
Le standard SQL définit DROP ROLE
mais il ne permet la
suppression que d'un seul rôle à la fois et il spécifie d'autres droits
obligatoires que ceux utilisés par PostgreSQL.