Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
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 ]
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 SELECT � PUBLIC 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.
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.
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�>>.
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.
Pr�c�dent | Sommaire | Suivant |
RESET | Niveau sup�rieur | ROLLBACK |