Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 30/11/2011 16:43:11
- sterfield
- Membre
Utilisateur postgresql et accès aux BDD
Bonjour,
J'ai une question concernant les droits que possède un utilisateur donné pour se connecter à une base.
Admettons que j'ai un pg_hba.conf assez ouvert, du genre "host all all 192.168.1.0/24 md5". Donc toute personne sur le réseau 192.168.1.0 pourra accéder aux base de mon server postgresql, à condition qu'il fournisse un bon mot de passe.
J'ai deux bases, appelons les "base1" et "base2", qui appartiennent à l'utilisateur "postgres".
Si je créé un utilisateur "test", muni d'un mot de passe, j'ai manifestement le droit de me connecter à toutes les bases, depuis n'importe quel serveur sur 192.168.1.0/24.
Par exemple, un "psql -h <serveur_pg> -d base1 -U test", en entrant le bon mot de passe, la connexion va s'effectuer, je pourrais lister les tables. Je n'ai toutefois pas le droit de faire un select dessus (encore heureux).
Donc soit j'ai raté une subtilité dans la sécurité sur Postgresql, soit la "vraie" barrière se situe au niveau du pg_hba.conf et qu'une fois passé, c'est accès libre pour la connexion sur les bases.
Existe t'il une option / privilège qui empêche explicitement la connexion à tous les utilisateurs, sauf le owner et les utilisateurs clairement spécifiés ?
Merci pour votre aide.
EDIT : je m'auto-réponds : En faisant un "REVOKE CONNECT ON DATABASE base1 FROM PUBLIC", l'utilisateur test n'a plus le droit de se connecter à base1. Par contre, je suis étonné que ca ne soit pas la "norme" que d'interdire tout le monde sauf spécifié explicitement, plutôt que l'inverse. Il existe une option qui permet de faire ca ?
Dernière modification par sterfield (30/11/2011 16:52:40)
Hors ligne
#2 30/11/2011 16:55:30
- rjuju
- Administrateur
Re : Utilisateur postgresql et accès aux BDD
Bonjour.
Vous pouvez spécifier dans le pg_hba.conf un utilisateur et une base, donc vous pouvez restreindre par ce biais là. Ex :
host base1 utilisateur1 192.168.1.0/24 md5
host base2 utilisateur2 192.168.1.0/24 md5
host all all 0.0.0.0/0 reject
Edit : Pour n'autoriser que ceux spécifier et non tout le monde, cela vient du fait que par défaut les databases sont autorisées à public. Vous pouvez changer cela comme vous l'avez fait en retirant les droits à public.
Si vous voulez que cela devienne la norme chez vous, vous pouvez le faire sur le template0 qui est utilisé par défaut lors de la création du base de donnée, ce qui changera donc le comportement pour vos prochaines bases.
Dernière modification par rjuju (30/11/2011 17:00:27)
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1