Accès PostgreSQL
Accès PostgreSQL depuis le réseau local (LAN)
1. Vérifier l’adresse IP du serveur
ip a
Exemple :
wlan0: inet 192.168.1.240/24
2. Configuration de postgresql.conf
Éditer :
sudo nano /etc/postgresql/XX/main/postgresql.conf
Remplacer :
#listen_addresses = 'localhost'
par :
listen_addresses = '127.0.0.1,192.168.1.240'
Cela limite PostgreSQL à :
- localhost
- l’interface réseau locale (wlan0 dans cet exemple)
3. Configuration de pg_hba.conf
Éditer :
sudo nano /etc/postgresql/XX/main/pg_hba.conf
Configuration finale :
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Réseau local LAN
host all all 192.168.1.0/24 scram-sha-256
4. Redémarrer PostgreSQL
sudo systemctl restart postgresql
5. Créer un superuser PostgreSQL
sudo -u postgres createuser -P -s monuser
Options :
- -P → demande le mot de passe
- -s → superuser PostgreSQL
6. Si le rôle existe déjà
Ouvrir PostgreSQL :
sudo -u postgres psql
Définir le mot de passe et les droits :
ALTER ROLE monuser WITH PASSWORD 'MotDePasse';
ALTER ROLE monuser WITH SUPERUSER;
Quitter :
\q
7. Vérification écoute réseau
ss -ltnp | grep 5432
Résultat attendu :
LISTEN 0 244 192.168.1.240:5432
8. Vérifier le firewall (optionnel)
sudo ufw allow from 192.168.1.0/24 to any port 5432 proto tcp
9. Test de connexion depuis un autre poste
psql -h 192.168.1.240 -U monuser postgres
Paramètres client :
- Host : 192.168.1.240
- Port : 5432
- User : monuser
- Password : mot de passe défini précédemment