GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer PostgreSQL sur Debian 9

PostgreSQL, souvent connu simplement sous le nom de Postgres, est un système de gestion de base de données relationnelle objet à usage général open source. PostgreSQL possède de nombreuses fonctionnalités avancées telles que les sauvegardes en ligne, la récupération à un instant donné, les transactions imbriquées, les requêtes SQL et JSON, le contrôle de la concurrence multiversion (MVCC), la réplication asynchrone et bien plus encore.

Dans ce didacticiel, nous allons vous montrer comment installer PostgreSQL sur Debian 9 et explorer les principes fondamentaux de l'administration de base de données de base.

Prérequis #

Avant de poursuivre ce didacticiel, assurez-vous que l'utilisateur sous lequel vous êtes connecté dispose des privilèges sudo.

Installation de PostgreSQL #

Au moment de la rédaction de cet article, la dernière version de PostgreSQL disponible dans les référentiels Debian est PostgreSQL version 9.6.

Pour installer PostgreSQL sur votre serveur Debian, procédez comme suit :

  1. Commencez par mettre à jour l'index local des packages :

    sudo apt update
  2. Installez le serveur PostgreSQL et le package contrib PostgreSQL qui fournit des fonctionnalités supplémentaires pour la base de données PostgreSQL :

    sudo apt install postgresql postgresql-contrib
  3. Lorsque l'installation est terminée, le service PostgreSQL démarre automatiquement. Pour vérifier l'installation, nous nous connecterons au serveur de base de données PostgreSQL en utilisant le psql utilitaire et imprimez la version du serveur :

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

    La sortie ressemblera à ceci :

                                                     version                                                  
    -----------------------------------------------------------------------------------------------------------
    PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
    (1 row)
Psql est un programme de terminal interactif qui vous permet d'interagir avec le serveur PostgreSQL.

Rôles PostgreSQL et méthodes d'authentification #

PostgreSQL gère les autorisations d'accès à la base de données en utilisant le concept de rôles. Un rôle peut représenter un utilisateur de base de données ou un groupe d'utilisateurs de base de données.

PostgreSQL prend en charge un certain nombre de méthodes d'authentification. Les méthodes les plus couramment utilisées sont :

  • Trust - Avec cette méthode, le rôle peut se connecter sans mot de passe, tant que les critères définis dans le pg_hba.conf sont remplies.
  • Mot de passe :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 (texte clair)
  • Ident - Cette méthode n'est prise en charge que sur les connexions TCP/IP. 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 uniquement pris en charge sur les connexions locales.

L'authentification du client PostgreSQL est définie dans le fichier de configuration nommé pg_hba.conf . Par défaut pour les connexions locales, PostgreSQL est configuré pour utiliser la méthode d'authentification par les pairs.

Le postgres user est créé automatiquement lorsque vous installez PostgreSQL. Cet utilisateur est le superutilisateur de l'instance PostgreSQL et il équivaut à l'utilisateur racine MySQL.

Pour vous connecter au serveur PostgreSQL en tant qu'utilisateur postgres, vous devez d'abord passer à l'utilisateur postgres, puis vous pouvez accéder à une invite PostgreSQL à l'aide de psql utilitaire :

sudo su - postgrespsql

À partir de là, vous pouvez interagir avec votre instance PostgreSQL. Pour quitter le shell PostgreSQL, tapez :

\q

Vous pouvez utiliser le sudo commande pour accéder à l'invite PostgreSQL sans changer d'utilisateur :

sudo -u postgres psql

Le postgres l'utilisateur est généralement utilisé uniquement à partir de l'hôte local et il est recommandé de ne pas définir de mot de passe pour cet utilisateur.

Création du rôle et de la base de données PostgreSQL #

Vous pouvez créer de nouveaux rôles à partir de la ligne de commande en utilisant le createuser commande. Seuls les super-utilisateurs et les rôles avec CREATEROLE privilège peut créer de nouveaux rôles.

Dans l'exemple suivant, nous allons créer un nouveau rôle nommé john une base de données nommée johndb et accorder des privilèges sur la base de données.

  1. Créer un nouveau rôle PostgreSQL

    La commande suivante créera un nouveau rôle nommé "john":

    sudo su - postgres -c "createuser john"
  2. Créer une nouvelle base de données PostgreSQL

    Créez une nouvelle base de données nommée "johndb" en utilisant le createdb commande :

    sudo su - postgres -c "createdb johndb"
  3. Accorder des privilèges

    Pour accorder des autorisations au john utilisateur sur la base de données que nous avons créée à l'étape précédente, connectez-vous au shell PostgreSQL :

    sudo -u postgres psql

    et exécutez la requête suivante :

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Activer l'accès à distance au serveur PostgreSQL #

Par défaut le serveur PostgreSQL n'écoute que sur l'interface locale 127.0.0.1 . Pour activer l'accès à distance à votre serveur PostgreSQL, ouvrez le fichier de configuration postgresql.conf et ajoutez listen_addresses = '*' dans le CONNECTIONS AND AUTHENTICATION rubrique.

sudo vim /etc/postgresql/9.6/main/postgresql.conf
/etc/postgresql/9.6/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

enregistrez le fichier et redémarrez le service PostgreSQL avec :

sudo service postgresql restart

Vérifiez les modifications avec le ss utilitaire :

ss -nlt | grep 5432
LISTEN   0         128                 0.0.0.0:5432             0.0.0.0:*
LISTEN   0         128                    [::]:5432                [::]:*

Comme vous pouvez le voir dans la sortie ci-dessus, le serveur PostgreSQL écoute toutes les interfaces (0.0.0.0).

La dernière étape consiste à configurer le serveur pour qu'il accepte les connexions à distance en modifiant le pg_hba.conf fichier.

Voici quelques exemples montrant différents cas d'utilisation :

/etc/postgresql/9.6/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane will be able to access all databases from all locations using a md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using a md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Debian
  1. Comment installer R sur Debian 9

  2. Comment installer PostgreSQL sur Debian 10

  3. Comment installer PostgreSQL 11 / 10 sur Debian 9 et Debian 8

  4. Comment installer PostgreSQL sur Debian 11 / Debian 10

  5. Comment installer phpPgAdmin sur Debian 9

Comment installer PostgreSQL sur Debian 10 Buster

Comment installer Git sur Debian 10

Comment installer Go sur Debian 10

Comment installer PostgreSQL sur Debian 11

Comment installer PostgreSQL sur Debian 11 ?

Comment installer Go sur Debian