REVOKE

Nom

REVOKE -- supprime les droits d'acc�s

Synopsis

REVOKE [ GRANT OPTION FOR ]
    { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] nom_table [, ...]
    FROM { nom_utilisateur | GROUP
    nom_groupe | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE nom_base [, ...]
    FROM { nom_utilisateur | GROUP
    nom_groupe | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTION nom_fonction
([type, ...]) [, ...]
    FROM { nom_utilisateur | GROUP
    nom_groupe | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE nom_langage [, ...]
    FROM { nom_utilisateur | GROUP
    nom_groupe | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA nom_sch�ma [, ...]
    FROM { nom_utilisateur | GROUP
    nom_groupe | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE nom_espacelogique [, ...]
    FROM { nom_utilisateur | GROUP
nom_groupe | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

Description

La commande REVOKE retire des droits pr�c�demment attribu�s � un ou plusieurs utilisateurs ou groupes d'utilisateurs. Le mot cl� PUBLIC fait r�f�rence au groupe implicitement d�fini de tous les utilisateurs.

Voir la description de la commande GRANT pour conna�tre la signification des types de droits.

Notez qu'un utilisateur poss�de la somme des droits qui lui ont �t� donn�s directement, des droits qui ont �t� donn�s � un groupe dont il est membre et des droits donn�s � PUBLIC. Du coup, par exemple, retirer les droits de SELECTPUBLIC ne veut pas n�cessairement dire que plus personne n'a le droit de faire de SELECT sur l'objet : ceux qui en avaient obtenu le droit directement ou via un groupe l'ont toujours.

Si GRANT OPTION FOR est pr�cis�, seul l'option de transmission de droit (grant option) est supprim�e, pas le droit lui m�me. Sinon, le droit et l'option de transmission de droits sont r�voqu�s.

Si un utilisateur d�tient un privil�ge avec le droit de le transmettre, et qu'il l'a transmis � d'autres utilisateurs, alors les droits de ceux-ci sont appel�s des droits d�pendants. Si les droits ou le droit de transmettre du premier utilisateur sont supprim�s, et que des droits d�pendants existent, alors ces droits d�pendants sont aussi supprim�s si l'option CASCADE est utilis�e, sinon la suppression de droits est refus�e. Cette r�vocation r�cursive n'affecte que les droits qui avaient �t� attribu�s � travers une cha�ne d'utilisateurs tra�able jusqu'� l'utilisateur qui subit la commande REVOKE. Du coup, les utilisateurs affect�s peuvent finalement garder le droit s'il avait aussi �t� attribu� via d'autres utilisateurs.

Notes

Utilisez la commande \z de psql pour afficher les droits donn�s sur des objets existants. Voir GRANT pour des informations sur le format.

Un utilisateur ne peut r�voquer que les droits qu'il a donn� directement. Si, par exemple, un utilisateur A a donn� un droit et la possibilit� de le transmettre � un utilisateur B, et que B � son tour l'a donn� � C, alors A ne peut pas retirer directement le droit de C. � la place, il peut supprimer le droit de transmettre � B et utiliser l'option CASCADE pour que le droit soit automatiquement supprim� � C. Autre exemple, si A et B ont donn� le m�me droit � C, A peut r�voquer son propre don de droit mais pas celui de B, donc C dispose toujours de ce droit.

Lorsqu'un utilisateur, non propri�taire de l'objet, essaie de r�voquer (REVOKE) des droits sur l'objet, la commande �choue si l'utilisateur n'a aucun droit sur l'objet. Tant que certains droits sont disponibles, la commande s'ex�cute mais ne sont supprim�s que les droits dont l'utilisateur a l'option de transmission. La forme REVOKE ALL PRIVILEGES affiche un message d'avertissement si les options de transmissions pour un des droits nomm�s sp�cifiquement dans la commande ne sont pas poss�d�s. (En principe, ces instructions s'appliquent aussi au propri�taire de l'objet mais comme le propri�taire est toujours trait� comme celui d�tenant toutes les options de transmission, ces cas n'arrivent jamais.)

Si un superutilisateur choisit d'ex�cuter une commande GRANT ou REVOKE, la commande est ex�cut�e comme si elle �tait lanc�e par le propri�taire de l'objet affect�. Comme tous les droits proviennent du propri�taire d'un objet (directement ou via une cha�ne de transmissions de droits), un superutilisateur peut supprimer tous les droits sur un objet mais cela peut n�cessiter l'utilisation de CASCADE comme expliqu� pr�c�demment.

Exemples

Enl�ve au groupe public le droit d'ins�rer des lignes dans la table films :

REVOKE INSERT ON films FROM PUBLIC;

Supprime tous les droits de l'utilisateur manuel sur la vue genres :

  
REVOKE ALL PRIVILEGES ON genres FROM manuel;

Notez que ceci signifie en fait <<�r�voque tous les droits que j'ai donn�>>.

Compatibilit�

La note de compatibilit� de la commande GRANT s'applique par analogie � REVOKE. Le r�sum� de la syntaxe est :

REVOKE [ GRANT OPTION FOR ] privileges
    ON objet [ ( colonne [, ...] ) ]
    FROM { PUBLIC | nom_utilisateur
[, ...] }
    { RESTRICT | CASCADE }

Le standard n�cessite qu'une des options RESTRICT ou CASCADE soit indiqu�e, mais PostgreSQL utilise RESTRICT par d�faut.

Voir aussi

GRANT