androide

Come installare PostgreSQL su debian 10

How to Install and configuration PostgreSQL on Ubuntu Linux

How to Install and configuration PostgreSQL on Ubuntu Linux

Sommario:

Anonim

PostgreSQL, spesso noto semplicemente come Postgres, è un sistema di gestione di database relazionali di oggetti per scopi generici open source. Ha molte potenti funzionalità come backup online, ripristino point in time, transazioni nidificate, query SQL e JSON, controllo della concorrenza multi-versione (MVCC), replica asincrona e altro ancora.

Questo tutorial ti guida attraverso le fasi di installazione del server di database PostgreSQL su Debian 10. Esploreremo anche i fondamenti dell'amministrazione di base del database.

Installazione di PostgreSQL

Al momento della stesura di questo articolo, l'ultima versione di PostgreSQL disponibile dai repository Debian predefiniti è PostgreSQL versione 11.5.

Per installare PostgreSQL sul tuo server Debian eseguire i seguenti passi come utente root o utente con privilegi sudo:

  1. Inizia aggiornando l'indice del pacchetto APT:

    sudo apt update

    Installa il server PostgreSQL e il pacchetto contrib che fornisce funzionalità aggiuntive per il database PostgreSQL:

    sudo apt install postgresql postgresql-contrib

    Una volta completata l'installazione, il servizio PostgreSQL si avvia. Per verificare l'installazione, utilizzare lo psql strumento per stampare la versione del server:

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

    L'output dovrebbe essere simile al seguente:

    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 è un programma di terminale interattivo che consente di interagire con il server PostgreSQL.

Ruoli PostgreSQL e metodi di autenticazione

PostgreSQL gestisce le autorizzazioni di accesso al database usando il concetto di ruoli. A seconda della modalità di impostazione del ruolo, può rappresentare un utente del database o un gruppo di utenti del database.

PostgreSQL supporta diversi metodi di autenticazione. I metodi più utilizzati sono:

  • Affidabilità: un ruolo può connettersi senza password, purché siano soddisfatti i criteri definiti in pg_hba.conf : un ruolo può connettersi fornendo una password. Le password possono essere memorizzate come scram-sha-256 md5 e password (testo in chiaro) Ident - Supportato solo per connessioni TCP / IP. Funziona ottenendo il nome utente del sistema operativo del client, con una mappatura del nome utente opzionale. Peer: identico a Ident, ma è supportato solo su connessioni locali.

L'autenticazione client PostgreSQL è definita nel file di configurazione denominato pg_hba.conf . Per le connessioni locali, PostgreSQL è impostato per utilizzare il metodo di autenticazione peer.

L'utente “postgres” viene creato automaticamente quando PostgreSQL è installato. Questo utente è il superutente per l'istanza PostgreSQL ed è equivalente all'utente root di MySQL.

Per accedere al server PostgreSQL come "postgres", passare all'utente postgres e accedere a un prompt PostgreSQL utilizzando l'utilità psql :

sudo su - postgres psql

Da qui si può interagire con il server PostgreSQL. Per uscire da tipo PostgreSQL shell:

\q

È possibile utilizzare il sudo comando per accedere al prompt di PostgreSQL senza passare utenti:

sudo -u postgres psql

L'utente postgres viene generalmente utilizzato solo dall'host locale.

Creazione di ruolo e database PostgreSQL

Il createuser comando permette di creare nuovi ruoli da linea di comando. Solo superuser e ruoli con CREATEROLE privilegio possono creare nuovi ruoli.

Nel seguente esempio, creeremo un nuovo ruolo chiamato kylo , un database chiamato kylodb e garantiremo i privilegi sul database per il ruolo.

  1. Innanzitutto, crea il ruolo eseguendo il comando seguente:

    sudo su - postgres -c "createuser kylo"

    Quindi, creare il database utilizzando il comando createdb :

    sudo su - postgres -c "createdb kylodb"

    Per concedere le autorizzazioni all'utente sul database, connettersi alla shell PostgreSQL:

    sudo -u postgres psql

    Esegui la seguente query:

    grant all privileges on database kylodb to kylo;

Abilita accesso remoto al server PostgreSQL

Per impostazione predefinita, il PostgreSQL, server in ascolto solo sull'interfaccia locale 127.0.0.1 .

Aprire il file di configurazione postgresql.conf e aggiungere listen_addresses = '*' nella sezione CONNECTIONS AND AUTHENTICATION . Questo indica al server di ascoltare su tutte le interfacce di rete.

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;

Salvare il file e riavviare il servizio PostgreSQL per rendere effettive le modifiche:

sudo service postgresql restart

Verifica le modifiche con l'utilità ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

L'output dovrebbe mostrare che il server PostgreSQL in ascolto su tutte le interfacce (0.0.0.0).

L'ultimo passaggio è configurare il server per accettare gli accessi remoti modificando il file pg_hba.conf .

Di seguito sono riportati alcuni esempi che mostrano diversi casi d'uso:

/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

Conclusione

Ti abbiamo mostrato come installare e configurare PostgreSQL su Debian 10. Per maggiori informazioni su questo argomento, consulta la documentazione di PostgreSQL.

database postgresql debian