Configuration du fichier pg_hba.conf pour autoriser l'accès des autres serveurs à la base de données

15

J'ai une base de données PostgreSQL sur un serveur et j'ai besoin d'y accéder à partir d'un autre serveur.

J'ai besoin de modifier le fichier pg_hba.conf, mais je sais maintenant quelles sont les étapes pour modifier ce fichier. Serveur Centos

J'ai besoin d'ajouter la ligne suivante dans le fichier

host    all         all         10.0.2.12         255.255.255.255   trust

Je l'ai localisé dans var/lib/pgsql/data/

Maintenant, fondamentalement, je ne sais pas quelles sont les bonnes étapes pour le faire

Elitmiar
la source

Réponses:

14

Prenez d'abord une copie de sauvegarde du pg_hba.conf donné

sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf

De cette façon, vous avez l'ancienne version prête si vous vous trompez. Une fonctionnalité intéressante de l'archive tar est la conservation des autorisations et des répertoires. Ainsi, lorsque le pg_hba.conf est rompu au-delà de la reconnaissance. Vous pouvez:

cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar

Cela restaurera la sauvegarde pg_hba.conf à partir de l'archive que vous avez créée précédemment.

Quant à l'insertion réelle de la ligne:

sudo su -c 'echo "host    all         all         10.0.2.12         255.255.255.255   trust" >> /var/lib/pgsql/data/pg_hba.conf'

(REMARQUE: commande modifiée. Merci bortzmeyer!)

Devrait le faire. Notez que cela ajoute simplement la ligne dans le pg_hba.conf. Si jamais vous devez le changer, vous devez utiliser un véritable éditeur. Comme vi. Sa courbe d'apprentissage peut être un peu raide, mais après avoir appris au moins les bases, vous devriez être en sécurité dans la plupart des environnements Unix que vous rencontrez.

Maintenant que je suis de retour sur la piste, vous devriez essayer de redémarrer votre base de données postgresql. Sur une machine Centos, je pense que cela se fait par:

sudo service postgresql restart

ou vous pouvez simplement recharger la configuration sans redémarrer:

su - postgres
pg_ctl reload

Vous devriez maintenant pouvoir accéder à votre base de données postrgresql Centos-machines à partir du 10.0.2.12

pyhimys
la source
1
Le sudo dans la dernière commande ne fonctionnera pas puisque l'opération privilégiée se fait par une redirection, qui est gérée par le shell, pas par le programme que vous exécutez avec sudo (echo, dans ce cas).
bortzmeyer
Bon point! Il doit être écrit en tant qu'hôte sudo "echo" tous tous 10.0.2.12 255.255.255.255 trust ">> /var/lib/pgsql/data/pg_hba.conf"
pyhimys
Le moyen idéal serait de le placer sous contrôle de version dans un emplacement administrateur et de le déployer après l'avoir changé via SSH, etc.
vfclists
1
L'emplacement par défaut du fichier pg_hba.conf est un peu différent en 9.4: /var/lib/pgsql/9.4/data/pg_hba.conf.
Sergey Vlasov
13

N'oubliez pas de modifier postgresql.conf et de changer / ajouter une ligne

listen_addresses = '*'

Postgresql par défaut écoute sur localhost

user16233
la source
Votre exemple list_addresses n'est-il pas trop permissif? C'est un trou de sécurité béant si le serveur fonctionne sur plusieurs IP, c'est-à-dire public, interne, VPN, etc.
vfclists