Manager, Developer Education
PostgreSQL, ou Postgres, est un système de gestion de base de données relationnelle qui fournit une implémentation du langage de requête SQL. Il est conforme aux normes et dispose de nombreuses fonctionnalités avancées, comme des transactions fiables et une simultanéité sans verrou de lecture.
Ce guide explique comment installer Postgres sur un serveur Ubuntu 20.04.
Pour suivre ce tutoriel, vous aurez besoin d’un serveur Ubuntu 20.04 qui a été configuré en suivant notre guide de configuration initiale de serveur Ubuntu 20.04. Au terme de ce tutoriel préalable, votre serveur devrait avoir un utilisateur non root avec permissions sudo et un pare-feu basique.
Pour installer PostgreSQL, rafraîchissez d’abord l’index local des paquets de votre serveur :
- sudo apt update
Puis, installez le package Postgres ainsi qu’un package -contrib
qui ajoute quelques utilitaires et fonctionnalités supplémentaires :
- sudo apt install postgresql postgresql-contrib
Par défaut, Postgres utilise un concept appelé " rôles " pour gérer l’authentification et l’autorisation. Ces rôles sont, d’une certaine manière, similaires aux utilisateurs et groupes habituels de type Unix.
Une fois installé, Postgres est configuré pour utiliser l’authentification ident, ce qui signifie qu’il associe les rôles Postgres à un compte système Unix/Linux correspondant. Si un rôle existe au sein de Postgres, un nom d’utilisateur Unix/Linux portant le même nom peut se connecter à ce rôle.
La procédure d’installation a créé un compte utilisateur nommé postgres qui est associé au rôle Postgres par défaut. Il y a plusieurs façons d’utiliser ce compte pour accéder à Postgres. Un moyen est de passer au compte postgres sur votre serveur en tapant :
- sudo -i -u postgres
Ensuite, vous pouvez accéder à l’invite Postgres en tapant :
- psql
Cela vous permettra de vous connecter à l’invite PostgreSQL, et de là, vous serez libre d’interagir immédiatement avec le système de gestion de la base de données.
Pour quitter l’invite PostgreSQL, exécutez ce qui suit :
- \q
Cela vous ramènera à l’invite de commande postgres
de Linux.
Vous pouvez également exécuter la commande que vous souhaitez avec le compte postgres directement en utilisant sudo
.
- sudo -u postgres psql
Cela vous connectera directement dans Postgres sans passer par le shell bash
intermédiaire.
Là encore, vous pouvez quitter la session Postgres interactive en tapant :
- \q
Si vous êtes connecté en tant que compte postgres, vous pouvez créer un nouveau rôle en tapant :
- createuser --interactive
Si, au contraire, vous préférez utiliser sudo
pour chaque commande sans quitter votre compte normal, tapez :
- sudo -u postgres createuser --interactive
Dans tous les cas, le script vous proposera quelques choix et, en fonction de vos réponses, exécutera les bonnes commandes Postgres pour créer un utilisateur selon vos spécifications.
OutputEnter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
Une autre hypothèse posée par défaut par le système d’authentification Postgres est que tout rôle utilisé pour se connecter disposera d’une base de données du même nom à laquelle il pourra accéder.
Cela signifie que si l’utilisateur que vous avez créé dans la dernière section est appelé sammy, ce rôle tentera de se connecter à une base de données qui est également appelée “sammy” par défaut. Vous pouvez créer la base de données appropriée avec la commande createdb
.
Si vous êtes connecté en tant que compte postgres, vous devez taper quelque chose comme :
- createdb sammy
Si, au contraire, vous préférez utiliser sudo
pour chaque commande sans quitter votre compte normal, vous devez taper :
- sudo -u postgres createdb sammy
Pour vous connecter avec une authentification basée sur ident
, vous aurez besoin d’un utilisateur Linux portant le même nom que votre rôle et votre base de données Postgres.
Si vous n’avez pas d’utilisateur Linux correspondant disponible, vous pouvez en créer un avec la commande adduser
. Vous devrez le faire à partir de votre compte non root avec privilèges sudo
(c’est-à-dire sans être connecté en tant qu’utilisateur postgres) :
- sudo adduser sammy
Une fois ce nouveau compte disponible, vous pouvez basculer sur ce dernier et vous connecter à la base de données en tapant :
- sudo -i -u sammy
- psql
Ou alors, vous pouvez le faire en ligne :
- sudo -u sammy psql
Cette commande vous connectera automatiquement, en supposant que tous les composants ont été correctement configurés.
Si vous souhaitez que votre utilisateur se connecte à une autre base de données, vous pouvez le faire en spécifiant la base de données comme ceci :
- psql -d postgres
Une fois connecté, vous pouvez vérifier vos informations de connexion actuelles en tapant :
- \conninfo
OutputYou are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
Vous avez maintenant configuré PostgreSQL sur votre serveur Ubuntu 20.04. Si vous souhaitez en savoir plus sur Postgres et sur la manière de l’utiliser, nous vous invitons à consulter les guides suivants :
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Bon tutorial… mais le mot de passe du role alors ? pourquoi ne même pas le mentionner ? c’est pourtant assez utile comme concept