Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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.
Pages : 1