Dans ce tutoriel, vous allez apprendre comment gérer une base de données PostgreSQL à partir de la ligne de commande sous Ubuntu.
Cet article décrit comment ajouter et supprimer des bases de données et des utilisateurs PostgreSQL à partir de la ligne de commande.
Lire aussi: Comment utiliser PostgreSQL avec Laravel
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 très apprécié pour de nombreux projets, petits et grands, et présente l’avantage de respecter les normes et d’être doté de nombreuses fonctionnalités avancées telles que les transactions fiables et la simultanéité sans verrouillage en lecture.
Conditions préalables
Avant de pouvoir gérer une base de données PostgreSQL, vous aurez besoin d’un serveur Ubuntu 18.04 et une version PostgreSQL installé. Vous pouvez suivre notre article sur comment installer postgreSQL.
Votre serveur devrait avoir un utilisateur non root avec permissions sudo et un pare-feu basique.
Gérer une base de données PostgreSQL à partir de la ligne de commande
Après avoir rempli les conditions préalables, nous pouvons maintenant rentrer dans le vif du sujet qui est comment gérer une base de données PostgreSQL à partir de la ligne de commande.
Créer des utilisateurs PostgreSQL
Par défaut, Postgres utilise la notion de « rôles » pour gérer l’authentification et l’autorisation. Ils sont, à certains égards, semblables aux comptes classiques de type Unix, mais Postgres ne fait pas de distinction entre utilisateurs et groupes et préfère le terme plus souple de « rôle ».
Lire aussi: Comment installer MySQL 8.0 sur Ubuntu 20.04
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. Pour utiliser Postgres, vous pouvez vous connecter à ce compte.
Il y a plusieurs façons d’utiliser ce compte pour accéder à Postgres.
Créer un utilisateur en mode interactive
Pour créer un utilisateur PostgreSQL en mode interactive, procédez comme suit:
1- Sur la ligne de commande, saisissez la commande suivante en tant qu’utilisateur root du serveur:
sudo -u postgres -i
2- Vous pouvez maintenant exécuter des commandes en tant que superutilisateur PostgreSQL. Pour créer un utilisateur, tapez la commande suivante:
createuser --interactive --pwprompt
3- À l’invite Entrez le nom du rôle à ajouter: tapez le nom de l’utilisateur.
4- À l’invite Entrez le mot de passe pour le nouveau rôle: entrez un mot de passe pour l’utilisateur.
5- À l’invite Entrez-le à nouveau: retapez le mot de passe.
6- Le nouveau rôle sera-t-il un superutilisateur? , tapez (y) si vous souhaitez accorder l’accès superutilisateur. Sinon, tapez (n).
7- Le nouveau rôle sera-t-il autorisé à créer des bases de données? invite, tapez (y) si vous souhaitez autoriser l’utilisateur à créer de nouvelles bases de données. Sinon, tapez (n).
8- À la Est-ce que le nouveau rôle sera autorisé à créer plus de nouveaux rôles? invite, tapez (y) si vous souhaitez autoriser l’utilisateur à créer de nouveaux utilisateurs. Sinon, tapez (n).
9- PostgreSQL crée l’utilisateur avec les paramètres que vous avez spécifiés.
Notes :
–interactive ou -i : permet de passer en mode interactive dans le terminal ;
–pwprompt : permet à l’invite de commande de demander le mot de passe.
Créer un utilisateur en mode normal
Pour créer un utilisateur PostgreSQL en mode normal, procédez comme suit:
1- Sur la ligne de commande, saisissez la commande suivante en tant qu’utilisateur root du serveur:
sudo -u postgres -i
2- Vous pouvez maintenant exécuter des commandes en tant que superutilisateur PostgreSQL. Pour créer un utilisateur, tapez la commande suivante:
createuser -sP username
Note :
-s : superuser Postgres
-P : definir le mot de passe
Créer une base de données PostgreSQL
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 section précédente est appelé « john », ce rôle tentera de se connecter à une base de données également appelée « john » 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 john
Si, au contraire, vous préférez utiliser sudo
pour chaque commande sans quitter votre compte normal, vous devez taper :
sudo -u postgres createdb john
Cette flexibilité offre de multiples façons de créer des bases de données au besoin.
Ouverture d’une invite Postgres avec le nouveau rôle
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 john
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 john psql
Ou alors, vous pouvez le faire en ligne :
sudo -u john 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
Ajout d’un utilisateur existant à une base de données
Pour accorder à un utilisateur existant des privilèges sur une base de données, procédez comme suit:
Exécutez le programme psql en tant que propriétaire de la base de données ou en tant que superutilisateur postgres.
Tapez la commande suivante. Remplacez les autorisations par les autorisations que vous souhaitez accorder, dbname par le nom de la base de données et le nom d’utilisateur par l’utilisateur:
GRANT permissions ON DATABASE dbname TO username;
Supprimer une base de données PostgreSQL
Semblable à la commande createdb pour créer des bases de données, il existe la commande dropdb pour supprimer des bases de données.
Pour supprimer une base de données, vous devez être le propriétaire ou disposer des privilèges de superutilisateur.
Tapez la commande suivante, en remplaçant dbname par le nom de la base de données que vous souhaitez supprimer:
dropdb dbname
Supprimer un utilisateur PostgreSQL
Semblable à la commande createuser pour la création d’utilisateurs, il existe la commande dropuser pour supprimer des utilisateurs.
Pour supprimer un utilisateur spécifique, tapez la commande suivante. Remplacez le nom d’utilisateur par le nom de l’utilisateur que vous souhaitez supprimer:
dropuser username
Conclusion
Dans ce tutoriel, vous avez appris comment gérer une base de données PostgreSQL à partir de la ligne de commande sous Ubuntu.
Pour toute remarques et suggestions, veuillez laisser un commentaire en bas de cet article.
2 Comments