PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Sécurité » Problême de droits de listage des bases de données. » 04/11/2009 19:22:24

Bonsoir,
Cette méthode me plait, je vais l'utiliser.
je vous remercie pour votre réponse.

Amicalement,
Xeon.

#2 Re : Sécurité » Problême de droits de listage des bases de données. » 03/11/2009 14:22:38

Bonjour,
Je vous remercie pour votre réponse.
Je vais essayer et je vous tiens au courant.

Amicalement,
Xeon.

#3 Sécurité » Problême de droits de listage des bases de données. » 03/11/2009 02:05:24

xeon
Réponses : 3

Bonsoir,
Je viens à peine de commencer à me mettre à PostGreSQL, mais je me suis heurté à un problème auquel la documentation n'a pu m'aider :(
Je m'explique :

Je crée un utilisateur "usrtest1" qui sera propriétaire de la base de donnée "dbtest1". Jusque là pas de problèmes.
Je me connecte avec l'utilisateur postgres (su postgres), je fais "psql -l" et la commande me renvois :

        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 dbtest1   | usrtest1 | UTF8
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
(4 rows)

Ce qui est logique vu que je suis avec l'utilisateur postgres qui est superutilisateur.
maintenant je me connecte avec l'utilisateur usrtest1 (psql -U usrtest1 -d dbtest1 -c '\l')
Voilà ce que me renvois la commande :

        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 dbtest1   | usrtest1 | UTF8
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
(4 rows)

Et voila le problème, je ne veut pas que l'utilisateur usrtest1 voit les bases des autres utilisateurs, en plus il peut effectuer des query sur les bases qui ne sont pas les siennes.
J'ai testé de faire des rôles et de supprimer touts les accès de ceux ci sur les autres bases, rien ne change il peut toujours visualiser les autres bases.
Donc il me faudrait un moyen que lorsque l'utilisateur liste les bases, seulement celles dont il est le propriétaire s'affichent, et pas les autres ce qui devrais me donner quand je fais cette commande : psql -U usrtest1 -d dbtest1 -c '\l'

        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 dbtest1   | usrtest1 | UTF8
(1 rows)

Avez vous une solution ?
Je tiens à préciser que je n'utilise pas phpPgAdmin (pas de php, uniquement apache CGI (c++)), uniquement les outils du style de Navicat et PgAdmin et la ligne de commande.
J'ai testé le coup du 'revoke select on pg_database from public;' cette solution me parait extrêmement barbare!?!

Je vous remercie d'avance.
Amicalement,
Xeon.

Pied de page des forums

Propulsé par FluxBB