DBMS/PostgreSQL/Brief

De TartareFR
Aller à la navigation Aller à la recherche

Initialisation

# service postgresql initdb
# service postgresql start
# chkconfig postgresql on

Ajouter un compte utilisateur et fixer les permissions des bases de données

Ajouter un utilisateur Linux/UNIX appelé koji

Les commandes suivantes vont ajouter un utilisateur standard au système

# adduser koji
# passwd koji

Devenir le super-utilisateur postgres

Ici nous avons besoin de se connecter avec le compte super-utilisateur du serveur PostgreSQL. Le plus simplement en devenant l'utilisateur propriétaire du processus PostgreSQL depuis le compte super-utilisateur du système: root.

# su - postgres

Ajout de l'utilisateur koji

$ createuser koji

Mise en place d'un mot de passe pour l'utilisateur koji

$ psql
postgres=# ALTER USER shinken WITH PASSWORD 'shinkenpasswd';
ALTER ROLE

Ajout de la base de données koji

On ajoute une base de données nommée koji et on l'affecte à l'utilisateur postgres koji

$ createdb -O koji koji

Accès distant

Par ssh

Le moyen le plus simple ( et surtout le plus sécurisé ) est de se connecter en ssh.

En effet Mettre le démon PostgreSQL à l'écoute du réseau LAN/WAN est considérer comme une faille de sécurité.

Configurer l'écoute du démon

Il est toutefois possible de configurer PostgreSQL afin qu'il écoute d'autres interfaces réseaux que la boucle local ( lo ).

Il faut remplacer localhost par *, et PostgreSQL se mettra à l'écoute sur toutes les interfaces réseaux. Il est possible de spécifier plusieurs adresses IP ( séparées par un espace ).

Fichier <path>/var/lib/pgsql/data/postgresql.conf</path>

listen_addresses = '*'
port = 5432 

Autoriser la connexion distante depuis l'adresse IP 192.168.0.148 avec l'utilisateur shinken ( connexion avec mot de passe )

Fichier <path>/var/lib/pgsql/data/pg_hba.conf</path>

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         shinken     192.168.0.148/32      md5

Redémarrage de PostgreSQL

systemctl restart posgresql

ou

service postgresql restart
Idea.png
Firewall
Il faut ouvrir le port tcp/5432.

Test

Depuis un poste distant on teste:

$ psql -h <HOST> -U <USER> -W <DATABASE>
  • -h <HOST>: spécifier l'hôte distant
  • -U <USER>: spécifier l'utilisateur distant
  • -W: forcer la demande du mot de passe
  • <DATABASE>: spécifier la base

exemple

$ psql -h koji.b2pweb.com -U shinken -W koji