Installer & Configurer PostgreSQL

PostgreSQL

PostgreSQL est un système de gestion de base de données, équivalent à MySQL, réputé pour sa fiabilité, son intégrité des données, et son exactitude. Il fonctionne sur tous les principaux systèmes d’exploitation, y compris Linux, UNIX et Windows.

Ce tutoriel explique comment installer et configurer un serveur PostgreSQL 9.1.24 sous Debian 7.7.0. Si vous utilisez une version de Debian ou une distribution différente il pourrait y avoir quelques divergences de paramétrage.

Toutes les manipulations à venir seront à effectuer en tant que super-utilisateur.


À Savoir

Limites de PostgreSQL :

Limite Valeur
Taille maximale de base de données Illimitée
Taille maximale de la table 32 TB
Taille maximale de ligne 1.6 To
Taille maximale du champ 1 GB
Nombre maximal de lignes par table Illimitée
Nombre maximum de colonnes par table 250 – 1600 selon les types de colonnes
Index maximum par table Illimitée

Pour plus d’informations voir la documentation de PostgreSQL.

Installation de PostgreSQL

Mettre à jour la distribution

Exécutez la commande suivante :

apt-get update -y && apt-get upgrade -y

Installer PostgreSQL

Exécutez la commande suivante :

apt-get install postgresql postgresql-client postgresql-contrib

[Optionnel] Pour administrer votre serveur PostgreSQL depuis une interface graphique, installez phppgadmin :

apt-get install phppgadmin

A l’installation, un utilisateur système et de PostgreSQL (administrateur), nommé postgres, est créé sans mot de passe avec sa propre base de données portant son nom.

Vous pouvez accéder à PostgreSQL en tant que postgres via les commandes suivantes :

su - postgres
psql

Quitter PostgreSQL :

\q

Configuration de PostgreSQL

Ajouter un mot de passe à postgres

Connectez-vous au avec cet utilisateur :

su - postgres

Connectez-vous à PostgreSQL :

psql

Donnez un mot de passe à l’utilisateur à l’aide de la commande suivante :

\password postgres

Syntaxe\password nom_utilisateur

[Optionnel] Installer le pack d’administration

Le pack d’administration de PostgreSQL fournit des fonctions de soutiens à pgadmin, ainsi que d’autres outils d’administration et de gestion. L’ utilisation de toutes ces fonctions est restreinte à l’administrateur.

Créez l’extension adminpack :

CREATE EXTENSION adminpack;

SyntaxeCREATE EXTENSION nom_extension;

Quittez PostgreSQL :

\q

Créer un utilisateur administrateur distant

L’utilisateur postgres est déjà super-utilisateur et est utilisé pour gérer la base de données administrative de PostgreSQL. Par défaut, il est seulement utilisable localement et il le restera : nous allons créer un autre utilisateur.

Si ce n’est pas encore fait, quittez PostgreSQL  et déconnectez vous de l’utilisateur postgres :

\q

exit

Créez un utilisateur système (postsql par exemple) :

adduser nom_utilisateur

Reconnectez vous avec l’utilisateur postgres :

su - postgres

Ajoutez l’utilisateur système en tant qu’utilisateur PostgreSQL :

createuser

Renseignez le rôle (nom d’utilisateur) et répondez  y à la question Shall the new role be a superuser? pour qu’il soit super-utilisateur de PostgreSQL.

Connectez-vous à PostgreSQL :

psql

Donnez un mot de passe à l’utilisateur que vous venez de créer :

\password nom_utilisateur

Quittez PostgreSQL :

\q

Déconnectez vous de l’utilisateur postgres :

exit

Quelques commandes utiles

Supprimer un utilisateur :

dropuser nom_utilisateur

Créer une base de données :

createdb -O utilisateur_propriétaire nom_bdd

Supprimer une base de données :

dropdb nom_bdd

Configurer l’authentification MD5 de PostgreSQL

Par défaut, PosgreSQL utilise la méthode d’authentification peer . Celle-ci utilise le nom de utilisateur voulant se connecter à PostgreSQL comme nom d’utilisateur d’une base de données et n’autorise la connexion que s’il en existe une portant son nom. Cette méthode n’est supportée que pour les connexions locales et n’exige pas de mot de passe.

Vous l’aurez compris, cette méthode n’est pas appropriée dans notre cas. Nous allons utiliser l’authentification md5. La méthode d’authentification md5 utilise un mot de passe pour se connecter à PostgreSQL et n’est pas limitée aux connexions locales.

La configuration se passe dans le fichier /etc/postgresql/9.1/main/pg_hba.conf, qui contrôle l’authentification des clients.

Éditez le fichier pg_hba.conf :

nano /etc/postgresql/9.1/main/pg_hba.conf

Repérez la ligne suivante :

local   all             all                                     peer

Remplacez-là par la ligne suivante :

local   all             all                                     md5

Enregistrez les modifications ;

Redémarrez le service postgresql :

service postgresql restart

[Optionnel] Configuration de phppgadmin

Configurer l’accès distant

Par défaut, phppgadmin est accessible seulement à l’adresse locale http://localhost/phppgadmin. Nous allons modifier le fichier de configuration apache de phppgadmin /etc/apache2/conf.d/phppgadmin, pour autoriser l’accès distant.

Éditez le fichier phppgadmin :

nano /etc/apache2/conf.d/phppgadmin

Repérez et dé-commentez la ligne suivante :

# allow from all

Enregistrez les modifications et redémarrez le service apache2 :

service apache2 restart

Désormais, vous devez avoir accès à phppgadmin depuis l’adresse http://Adresse_IP_serveur/phppgadmin.

Autoriser les connexions à phppgadmin

Initialement, phppgadmin interdit les connexions utilisateurs depuis un poste distant. Nous allons autoriser le contraire dans le fichier /usr/share/phppgadmin/conf/config.inc.php.

Éditez le fichier config.inc.php :

nano /usr/share/phppgadmin/conf/config.inc.php

Repérez la ligne suivante :

$conf['servers'][0]['host'] = 'localhost';

Supprimez la valeur localhost ;

En laissant la variable vide, tous les hôtes peuvent accéder à phppgadmin ;

Repérez la ligne suivante :

 $conf['extra_login_security'] = true;

Remplacez sa valeur true par false ;

En plaçant la valeur sur false, nous pourrons nous connecter avec les utilisateur de PostgreSQL ;

Enregistrez les modifications ;

Redémarrez les services postgresql et apache2 :

service postgresql restart && service apache2 restart

Vous pouvez maintenant vous connecter à phppgadmin à l’aide des utilisateurs PostgreSQL (sauf postgres).

– Fin du tutoriel –

Publicités

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.