GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare PostgreSQL su Debian 10

PostgreSQL, spesso noto semplicemente come Postgres, è un sistema di gestione di database relazionale a oggetti per uso generale 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 i passaggi dell'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, esegui i seguenti passaggi come utente root o utente con privilegi sudo:

  1. Inizia aggiornando l'indice del pacchetto APT:

    sudo apt update
  2. Installa il server PostgreSQL e il pacchetto contrib che fornisce funzionalità aggiuntive per il database PostgreSQL:

    sudo apt install postgresql postgresql-contrib
  3. Una volta completata l'installazione, verrà avviato il servizio PostgreSQL. Per verificare l'installazione, utilizzare il 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 terminale interattivo che consente di interagire con il server PostgreSQL.

Ruoli PostgreSQL e metodi di autenticazione #

PostgreSQL gestisce le autorizzazioni di accesso al database utilizzando il concetto di ruoli. A seconda di come hai impostato il 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:

  • Fiducia:un ruolo può connettersi senza password, purché i criteri definiti in pg_hba.conf sono soddisfatte.
  • Password: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 - Uguale a Ident, ma è supportato solo su connessioni locali.

L'autenticazione del 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 durante l'installazione di PostgreSQL. Questo utente è il superutente per l'istanza PostgreSQL ed è equivalente all'utente root di MySQL.

Per accedere al server PostgreSQL come "postgres", passare a userpostgres e accedere a un prompt di PostgreSQL utilizzando il psql utilità:

sudo su - postgrespsql

Da qui puoi interagire con il server PostgreSQL. Per uscire dal tipo di shell PostgreSQL:

\q

Puoi usare il sudo comando per accedere al prompt di PostgreSQL senza cambiare utente:

sudo -u postgres psql

Il postgres l'utente viene in genere utilizzato solo da localhost.

Creazione del ruolo PostgreSQL e del database #

Il createuser comando consente di creare nuovi ruoli dalla riga di comando. Solo superutenti e ruoli con CREATEROLE privilegio può creare nuovi ruoli.

Nell'esempio seguente creeremo un nuovo ruolo denominato kylo , un database chiamato kylodb e concedere privilegi sul database al ruolo.

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

    sudo su - postgres -c "createuser kylo"
  2. Quindi, crea il database usando createdb comando:

    sudo su - postgres -c "createdb kylodb"
  3. Per concedere i permessi all'utente sul database, connettiti alla shell di 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 server PostgreSQL è in ascolto solo sull'interfaccia locale 127.0.0.1 .

Se vuoi connetterti al server PostgreSQL da postazioni remote, devi impostare il server in ascolto sull'interfaccia pubblica e modificare la configurazione per accettare connessioni remote.

Apri il file di configurazione postgresql.conf e aggiungi listen_addresses = '*' nel CONNECTIONS AND AUTHENTICATION sezione. Questo indica al server di essere in ascolto 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;

Salva il file e riavvia il servizio PostgreSQL per rendere effettive le modifiche:

sudo service postgresql restart

Verifica le modifiche con ss utilità:

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 consiste nel configurare il server per accettare accessi remoti modificando il pg_hba.conf file.

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

Debian
  1. Come installare R su Debian 9

  2. Come installare PostgreSQL su Debian 9

  3. Come installare PostgreSQL 11/10 su Debian 9 e Debian 8

  4. Come installare PostgreSQL su Debian 11 / Debian 10

  5. Come installare phpPgAdmin su Debian 9

Come installare PostgreSQL su Debian 8

Come installare WordPress su Debian 8

Come installare MariaDB su Debian 8

Come installare PostgreSQL su Debian 10 Buster

Come installare PostgreSQL su Debian 11

Come installare Zabbix su Debian 11