GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer PostgreSQL sur Debian 10

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. Il dispose de nombreuses fonctionnalités puissantes 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, etc.

Ce didacticiel vous guide à travers les étapes d'installation du serveur de base de données PostgreSQL sur Debian 10. Nous explorerons également les principes fondamentaux de l'administration de base de données de base.

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 par défaut est PostgreSQL version 11.5.

Pour installer PostgreSQL sur votre serveur Debian, effectuez les étapes suivantes en tant que root ou utilisateur avec les privilèges sudo :

  1. Commencez par mettre à jour l'index du package APT :

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

    sudo apt install postgresql postgresql-contrib
  3. Une fois l'installation terminée, le service PostgreSQL démarrera. Pour vérifier l'installation, utilisez le psql outil pour imprimer la version du serveur :

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

    Le résultat devrait ressembler à ceci :

    PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
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. Selon la façon dont vous configurez le rôle, il peut représenter un utilisateur de base de données ou un groupe d'utilisateurs de base de données.

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

  • Confiance - Un 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 :uniquement pris en charge pour 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.

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

L'utilisateur « postgres » est automatiquement créé lors de l'installation de 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 que "postgres", passez à l'utilisateur postgres et accédez à une invite PostgreSQL à l'aide de psql utilitaire :

sudo su - postgrespsql

De là, vous pouvez interagir avec le serveur 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 user est généralement utilisé uniquement à partir de l'hôte local.

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

Le createuser La commande vous permet de créer de nouveaux rôles à partir de la ligne de 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é kylo , une base de données nommée kylodb et accordez des privilèges sur la base de données au rôle.

  1. Commencez par créer le rôle en exécutant la commande suivante :

    sudo su - postgres -c "createuser kylo"
  2. Ensuite, créez la base de données en utilisant le createdb commande :

    sudo su - postgres -c "createdb kylodb"
  3. Pour accorder des autorisations à l'utilisateur sur la base de données, connectez-vous au shell PostgreSQL :

    sudo -u postgres psql

    Exécutez la requête suivante :

    GRANT ALL PRIVILEGES ON DATABASE kylodb TO kylo;

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 .

Si vous souhaitez vous connecter au serveur PostgreSQL à partir d'emplacements distants, vous devez configurer le serveur pour écouter sur l'interface publique et modifier la configuration pour accepter les connexions à distance.

Ouvrez le fichier de configuration postgresql.conf et ajoutez listen_addresses = '*' dans le CONNECTIONS AND AUTHENTICATION section. Cela indique au serveur d'écouter sur toutes les interfaces réseau.

sudo nano /etc/postgresql/11/main/postgresql.conf
/etc/postgresql/11/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 pour que les modifications prennent effet :

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                [::]:*

La sortie doit montrer que 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/11/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane will be able to access all databases from all locations using an 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 an 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 9

  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 8

Comment installer WordPress sur Debian 8

Comment installer MariaDB sur Debian 8

Comment installer PostgreSQL sur Debian 10 Buster

Comment installer PostgreSQL sur Debian 11

Comment installer Zabbix sur Debian 11