|
||||
Ouverture de sessionNavigationContactez-nousAdministration du site : RechercheSujets du forumSujets actifsNouveaux sujets:SyndicationSondageQuelle est la version de PostgreSQL la plus répandue sur vos serveurs ? 8.3 10% 8.2 42% 8.1 40% 8.0 2% 7.4 6% 7.3 ou antérieure 0% Nombre de votes: 48 |
PostgreSQL 8.3.1 REVOKE, SET ROLE, BUG?Technique - général | PostgreSQL 8.3.1 REVOKE, SET ROLE, BUG?Par MonnierEric le 26/05/2008 - 14:50 Bonjour, J'utilise PostgreSQL 8.3.1 sur Windows XP Je dois supprimer une liste d’utilisateurs. Contexte : Avant d'écrire le script ad hoc, j'ai fait quelques tests pour m'assurer que la suppression des droits accordés était possible : Pourtant, la documentation précise : " 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é" Donc, il me semble que la suppression par postgres, d'un droit transmis indirectement devrait être possible. La méthode consistant à exécuter préalablement un SET ROLE fonctionne mais n'est pas idéale dans le contexte de mon développement. Pouvez-vous me dire pourquoi le super utilisateur postgres ne peut pas retirer tous les types de droits accordés, quel que soit le moyen utilisé (ex. clause WITH GRANT OPTION) ? Par avance, merci de votre réponse. Eric Monnier Un exemple valant mille mots : --------------- Postgres --------------- CREATE ROLE "UserA" LOGIN CREATE ROLE "UserB" LOGIN CREATE ROLE "UserC" LOGIN CREATE SCHEMA "UserA" CREATE SCHEMA "UserB" CREATE SCHEMA "UserC" --------------- UserA --------------- CREATE TABLE "UserA"."tableUserA" GRANT USAGE ON SCHEMA "UserA" TO "UserB"; --------------- UserB --------------- GRANT ALL ON TABLE "UserA"."tableUserA" TO "UserC" WITH GRANT OPTION; --------------- Super Utilisateur postgres --------------- -- extrait de pg_class avant le REVOKE relname | relacl REVOKE ALL ON TABLE "UserA"."tableUserA" FROM "UserC"; extrait de pg_class après le REVOKE relname | relacl |
|||
© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.