Considérons cet écran libreoffice:
mercredi 18 décembre 2024
Contraintes d'intégrité référentielle
jeudi 28 novembre 2024
Postgesql Fedora: accès depuis le réseau
Je vais montrer comment accéder à une base de données postgresql depuis un poste client qui n'est pas sur la machine du serveur mais sur le même réseau. Tout d'abord dans le fichier postgresql.conf, dé-commenter et modifier la ligne listen_addresses:
listen_addresses = '*' # what IP address(es) to listen on;
Ensuite je m'occupe du fichier pg_hba.conf en ajoutant le lignes qui conviennent:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer map=map01
# IPv4 local connections:
host all all 127.0.0.1/32 ident map=map01
# IPv4 lan connections
host all all 192.168.1.0/24 ident map=map02
# IPv6 local connections:
host all all ::1/128 ident map=map01
# IPv6 lan connections
host all all fe80::/10 ident map=map02
Puis j'adapte pg_ident.conf qui pourrait maintenant ressembler à:
# MAPNAME SYSTEM-USERNAME PG-USERNAME
map01 postgres postgres
map01 mifel michel
map01 mifel titi
map02 michel michel
map02 michel titi
map02 viviane titi
Les fichiers concernés se trouvent dans /var/lib/pgsql/data. J'utilise sudo nano pour procéder.
En ce qui concerne le pare-feu, les commandes à lancer sont:
mifel@fedora:~$ sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.1.0/24" service name="postgresql" accept'
mifel@fedora:~$ sudofirewall-cmd --permanent --add-rich-rule 'rule family="ipv6" source address="fe80::/10" service name="postgresql" accept'
mifel@fedora:~$ sudo firewall-cmd --reload
Le service postgresql ouvre le port 5432:
mifel@fedora:~$ firewall-cmd --permanent --service=postgresql --get-ports
5432/tcp
La commande hostnamectl m'informe que le nom 'hostname' n'est pas défini de manière statique: j'y remédie:
mifel@fedora:~$ sudo hostnamectl hostname fedora
Pour les connexions réseau je pouvais choisir dans pg_hba.conf une identification par mot de passe, mais j'ai préféré garder ident.
Donc je dois maintenant sur chaque poste client installer et activer oidentd (voir post précédent)
Ensuite pour le pare-feu:
michel@arcturus:~$ sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.1.0/24" service name="ident" accept'
michel@arcturus:~$ sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv6" source address="fe80::/10" service name="ident" accept'
michel@arcturus:~$ sudo firewall-cmd --reload
Le port 113 est maintenant ouvert:
michel@arcturus:~$ firewall-cmd --permanent --service=ident --get-ports
113/tcp
Et voilà:
dimanche 24 novembre 2024
Postgresql Fedora: démarrer
Postgresql est puissant gestionnaire de base de données, mais le démarrage de cet outil pose parfois certains problèmes. Je vais expliquer comment les résoudre.
Il s'agit en premier de sélectionner le paquet qui convient. Dans Fedora le paquet 'postgresql' donnera seulement le client. Il faut donc installer le paquet 'postgresql-server', ce qui provoquera par entrainement l'installation du paquet 'postgresql'. Je procède en ligne de commande (dans un terminal):
mifel@fedora:~$ sudo dnf install postgresql-server
Puis
mifel@fedora:~$ sudo dnf install oidentd
Puis
Dans un prochain article je traiterai des connexions depuis un poste client situé sur une autre machine.