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 19/05/2011 09:28:59

peyo
Membre

empecher à un utilisateur de voir des bases.

Bonjour,

J'ai un serveur avec plusieurs bases, disons base1 base2 et base3.
J'ai un role "anonyme" qui peut se connecter à une seule de ces bases : base1. Il n'a que des droits de select sur certains schemas. Mais le probleme c'est que si on se connecte au serveur via pgadmin par exemple avec ce role, on peut également voir les bases base2 et base3. Visuellement elles apparaissent dans les bases du serveur une fois ocnnecté, meme si le role anonyme n'y a pas accès, il les voit tout de meme. Est-ce possible de les cacher ?

Merci à vous,

Pierre.

Hors ligne

#2 19/05/2011 09:31:03

Marc Cousin
Membre

Re : empecher à un utilisateur de voir des bases.

Non. L'utilisateur, à partir du moment où il a accès à une base, a accès à la table pg_database, qui contient la liste des bases. Ce qui fait que pgadmin les affiche…


Marc.

Hors ligne

#3 19/05/2011 09:35:39

peyo
Membre

Re : empecher à un utilisateur de voir des bases.

ok, merci de ta réponse Marc.

Hors ligne

#4 19/05/2011 09:38:13

Marc Cousin
Membre

Re : empecher à un utilisateur de voir des bases.

Désolé, j'ai pas mieux smile

Je ne connais aucun moyen de cacher une base.

Peut-être gleu, quand il passera dans la journée…


Marc.

Hors ligne

#5 19/05/2011 10:04:34

peyo
Membre

Re : empecher à un utilisateur de voir des bases.

Je pense que la solution va être de clusteriser.

A ce sujet je vois deux pistes.

- Faire un initdb sur une nouvelle base qui accueillera base2 et base3. et faire un pgctl start dessus sur un port <> 5432.

- La deuxième solution que j'ai trouvé sur le web consiste à utiliser pg_creatcluster.

Vous conseilleriez quoi ?

Hors ligne

#6 19/05/2011 10:07:13

Marc Cousin
Membre

Re : empecher à un utilisateur de voir des bases.

C'est la même chose. pg_createcluster est un outil qui n'existe que sur debian (et ubuntu par ricochet), et qui fait l'initdb à votre place.


Marc.

Hors ligne

#7 19/05/2011 10:11:52

peyo
Membre

Re : empecher à un utilisateur de voir des bases.

ok merci smile

Hors ligne

#8 19/05/2011 12:05:09

peyo
Membre

Re : empecher à un utilisateur de voir des bases.

hop c fait, la suite pg_* de debian est très pratique, jusque la je faisais tout salement à la main avec des initdb et des pgctl start dans des scripts d'init tous crades. Maintenant c'est bien tout au format debian, nickel.

Hors ligne

#9 19/05/2011 19:54:24

gleu
Administrateur

Re : empecher à un utilisateur de voir des bases.

Reste la sempiternelle question du "qu'est-ce que ça peut bien faire que les utilisateurs voient les autres bases ?". Ceci dit, vous faites comme vous voulez. Deux points supplémentaires :
* il est possible de demander à pgadmin de cacher certaines bases (champ "DB restriction" d'un serveur)... cela étant dit, ça n'empêche pas les utilisateurs de lancer eux-mêmes la requête "SELECT * FROM pg_database" dans l'éditeur de requêtes
* si vous placez 15 instances sur le même serveur, vuos allez avoir plus de mal à configurer la mémoire pour chaque instance.


Guillaume.

Hors ligne

#10 20/05/2011 09:34:29

peyo
Membre

Re : empecher à un utilisateur de voir des bases.

gleu a écrit :

Reste la sempiternelle question du "qu'est-ce que ça peut bien faire que les utilisateurs voient les autres bases ?". Ceci dit, vous faites comme vous voulez. Deux points supplémentaires :
* il est possible de demander à pgadmin de cacher certaines bases (champ "DB restriction" d'un serveur)... cela étant dit, ça n'empêche pas les utilisateurs de lancer eux-mêmes la requête "SELECT * FROM pg_database" dans l'éditeur de requêtes
* si vous placez 15 instances sur le même serveur, vuos allez avoir plus de mal à configurer la mémoire pour chaque instance.

Car j'ai ouvert un serveur postgis au public avec un login anonyme/anonyme et sur le même serveur j'ai des bdds de mon entreprise, genre une base contacts. Je n'ai pas envie que des  gens puissent être "tentés" par des actions de piratage à la vue des noms des bases entreprise. Donc j'aurais deux instances, ça me semble convenable, je n'ai pas de grosses sollicitations sur le sgbd.

hors sujet : mais si ça vous intéresse, voici une solution postgre avec une couche géographique postgis couplée à mapserver, phpmapscript et ajax/javascript :

http://irennes.net/cartogeo.php

la liste des couches stockées dans le serveur :

http://irennes.net/cartoservices.php

et un tuto pour expliquer comment se connecter à ce type de serveur depuis un SIG :

http://irennes.net/cartoservicesdoc.php

Bien à  vous et merci de faire vivre la communauté postgre francophone smile

Pierre.

Dernière modification par peyo (20/05/2011 09:55:30)

Hors ligne

#11 20/05/2011 10:14:01

Marc Cousin
Membre

Re : empecher à un utilisateur de voir des bases.

On voit même les champs libres smile

Plus sérieusement, pas mal du tout comme résultat.


Marc.

Hors ligne

Pied de page des forums