GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Postgres 13 Ubuntu 20.04

Postgresql est un système de base de données relationnelle objet open source avec plus de 30 ans de développement actif qui lui a valu une solide réputation de fiabilité, de robustesse des fonctionnalités et de performances. Postgres, est un système de gestion de base de données relationnelle libre et open-source mettant l'accent sur l'extensibilité et la conformité SQL. Il s'appelait à l'origine POSTGRES, faisant référence à ses origines en tant que successeur de la base de données Ingres développée à l'Université de Californie à Berkeley. PostgreSQL est utilisé comme magasin de données principal ou entrepôt de données pour de nombreuses applications Web, mobiles, géospatiales et analytiques. PostgreSQL peut stocker des données structurées et non structurées dans un seul produit.

Vérifiez également :

  • Autorisations Postgres – Créer, mettre à jour, supprimer des utilisateurs de base de données
  • Comment installer et configurer Postgres 14 Ubuntu 20.04
  • Comment installer et configurer Postgres 14 sur Centos 8
  • Comment installer et configurer Postgres 13 sur Centos 8
  • Exécuter Postgresql 14 avec Docker et Docker-Compose
  • Comment installer et configurer Postgres 13 Ubuntu 20.04
  • Comment installer et configurer Postgres 14 sur Debian 11
  • Comment installer et configurer Postgres 14 sur Fedora 34
  • Comment installer et configurer Postgres 14 sur OpenSUSE Leap 15.3

Prérequis

Pour suivre, assurez-vous d'avoir les éléments suivants :

  1. Serveur Ubuntu 20.04
  2. Accès root au serveur ou utilisateur avec accès root
  3. Accès Internet depuis le serveur
  4. Connaissance du terminal Linux

Table des matières

  1. Assurez-vous que votre système est à jour
  2. Installer Postgres 13
  3. Méthodes d'authentification des rôles et des bases de données PostgreSQL
  4. Connexion à la base de données postgres
  5. Configuration de l'instance postgres pour l'accès à distance
  6. Gestion des utilisateurs
  7. Connexion à l'instance depuis un hôte distant

1. Assurez-vous que votre système est à jour

Actualisons l'index de packages local de votre serveur à l'aide de cette commande :

sudo apt update

Ensuite, nous mettons à niveau les packages de notre système avec ceci :

sudo apt -y upgrade

2. Installation de Postgres 13

Postgres est fourni dans les référentiels Ubuntu par défaut. Pour vérifier la version fournie, utilisez cette commande :

sudo apt-cache search postgresql | grep postgresql

Les packages par défaut fournis par les référentiels par défaut sont postgres 12. Si vous êtes intéressé par Postgres 12, vous pouvez l'installer avec les commandes suivantes. Le -contrib package qui ajoute quelques utilitaires et fonctionnalités supplémentaires :

sudo apt install postgresql postgresql-contrib

Puisque nous cherchons à installer Postgres 13, nous devrons ajouter un référentiel supplémentaire qui fournit les packages.

Créez la configuration du référentiel de fichiers à l'aide de cette commande :

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Importez ensuite la clé de signature du référentiel :

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Maintenant, mettons à jour les listes de packages :

sudo apt-get update

Ensuite, nous installons la version spécifique de postgres que nous voulons. Utilisez postgresql-13 au lieu de postgresql :

sudo apt-get -y install postgresql-13

Une fois l'installation réussie, Postgres 13 sera lancé.

Utilisez cette commande pour vérifier l'état du service :

# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2021-08-06 17:59:37 UTC; 1min 25s ago
   Main PID: 25741 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 9257)
     CGroup: /system.slice/postgresql.service

Aug 06 17:59:37 frhb64566ds systemd[1]: Starting PostgreSQL RDBMS...
Aug 06 17:59:37 frhb64566ds systemd[1]: Finished PostgreSQL RDBMS.

Ensuite, vérifions l'installation en nous connectant au serveur de base de données PostgreSQL et en vérifiant sa version. Utilisez cette commande :

sudo -u postgres psql -c "SELECT version();"

Sortie :

                                                                version
----------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 13.3 (Ubuntu 13.3-1.pgdg20.04+1) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit
(1 row)

3. Méthodes d'authentification des rôles et bases de données PostgreSQL

PostgreSQL utilise un concept appelé roles pour gérer l'authentification et l'autorisation du client. Par défaut, Postgres est configuré pour utiliser ident authentication , ce qui signifie qu'il associe des rôles Postgres à un compte système Unix/Linux correspondant. Si un rôle existe dans Postgres, un nom d'utilisateur Unix/Linux portant le même nom peut se connecter avec ce rôle.

La procédure d'installation a créé un compte d'utilisateur appelé postgres qui est associé au rôle postgres par défaut. Pour utiliser PostgreSQL, vous pouvez vous connecter à ce compte.

PostgreSQL prend en charge plusieurs méthodes d'authentification. Les méthodes les plus couramment utilisées sont :

  • Trust – Un rôle peut se connecter sans mot de passe, tant que les conditions définies dans le pg_hba.conf sont remplies.
  • Password – Un rôle peut se connecter en fournissant un mot de passe. Les mots de passe peuvent être stockés sous la forme scram-sha-256 , md5 , et password (clear-text ).
  • Ident – Uniquement pris en charge sur les connexions TCP/IP. Il fonctionne en obtenant le nom d'utilisateur du système d'exploitation du client, avec un mappage de nom d'utilisateur facultatif.
  • Peer – Identique à Ident, mais il n'est pris en charge que sur les connexions locales.

4. Connexion à la base de données postgres

1. En passant à postres utilisateur

Basculez vers le compte postgres sur votre serveur en tapant :

sudo -i -u postgres

Vous pouvez désormais accéder immédiatement à une invite Postgres en tapant :

$ psql
psql (13.3)
Type "help" for help.

postgres=#

Cela vous connectera à l'invite PostgreSQL, et à partir de là, vous serez libre d'interagir immédiatement avec le système de gestion de base de données.

2. En exécutant la commande en tant qu'utilisateur postgres

Utilisez ceci pour exécuter la commande directement en tant que postgres utilisateur utilisant sudo

sudo -u postgres psql

5. Configuration de l'instance postgres pour l'accès à distance

Par défaut, postgres n'est configuré que pour être accessible localement. Ce n'est pas idéal si nous voulons accéder à notre serveur depuis un autre hébergeur. Dans cette section, nous allons configurer postgres pour autoriser l'accès à partir d'hôtes distants.

Le fichier de configuration Postgres 13 se trouve dans ce chemin /etc/postgresql/13/main/pg_hba.conf

Changer l'identification des pairs en confiance

Utilisez cette commande pour changer le peer à trust

sed -i '/^local/s/peer/trust/' /etc/postgresql/13/main/pg_hba.conf

Changer l'identification d'identité en md5

Pour autoriser la connexion par mot de passe, modifiez ident à md5 pour chaque configuration d'hôte

sed -i '/^host/s/ident/md5/' /etc/postgresql/13/main/pg_hba.conf

Ajouter un bloc pour autoriser l'accès depuis n'importe où

Ajoutez ce contenu au fichier /etc/postgresql/13/main/pg_hba.conf pour autoriser l'accès par mot de passe à tous les hôtes :

host    all             all             0.0.0.0/0                md5

Assurez-vous que PostgreSQL écoute sur *

Ajoutez cette ligne à la configuration ici /etc/postgresql/13/main/postgresql.conf pour permettre à postgres d'écouter sur tous les hôtes

listen_addresses='*'

Pour appliquer les configurations, nous devons redémarrer le service postgres 13.

Activez et redémarrez le serveur postgresql pour recharger les configurations :

sudo systemctl restart postgresql
sudo systemctl enable postgresql

6. Gestion des utilisateurs

Créer un super utilisateur :

Ce serait mieux si nous créions un super utilisateur pour administrer le service postgres. Il s'agit de cet utilisateur autorisé à gérer d'autres utilisateurs et bases de données.

Connectez-vous à la base de données en tant que postres rôle

$ sudo -u postgres psql
psql (13.3 (Ubuntu 13.3-1.pgdg20.04+1))
Type "help" for help.

postgres=#

Créer un super utilisateur avec le nom root en utilisant cette commande :

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';

Vérifiez l'utilisateur s'il a été créé et s'il a reçu les privilèges nécessaires :

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {} ```

Gestion des utilisateurs de l'application

Utilisez ceci pour créer une base de données, créer un utilisateur et accorder à cet utilisateur tous les accès à cette base de données :

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;

Consultez ce guide complet sur la gestion des utilisateurs et des autorisations dans postgres ici.

7. Connexion à l'instance depuis un hôte distant

Utilisez cette commande pour tester que vous pouvez vous connecter :

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'

Conclusion

Jusqu'à présent, nous avons réussi à installer Postgresql 13 sur un serveur Ubuntu, à effectuer quelques configurations de base, puis à gérer les utilisateurs de base.


Ubuntu
  1. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer Postgresql et phpPgAdmin sur Ubuntu 15.04

  4. Comment installer et configurer Postgres 14 Ubuntu 20.04

  5. Comment installer et configurer Postgres 14 sur Debian 11

Comment installer et configurer GitLab sur Ubuntu 16.04

Comment installer et configurer Cacti sur Ubuntu 20.04

Comment installer et configurer Git sur Ubuntu 20.04

Comment installer et configurer OpenVAS 9 sur Ubuntu

Comment installer et configurer PostgreSQL sur Ubuntu

Comment installer et configurer Odoo sur Ubuntu Linux