Ricerca nel sito web

Come installare il database PostgreSQL in Debian 10


PostgreSQL (a volte indicato come Postgres) è il più avanzato sistema di database open source generico e relazionale a oggetti con un'architettura collaudata che funziona su tutti i principali sistemi operativi. È un sistema di database ad alte prestazioni, stabile, scalabile ed estensibile che fornisce un'incredibile integrità dei dati e supporta potenti componenti aggiuntivi.

È importante sottolineare che PostgreSQL ti consente di definire i tuoi tipi di dati, aggiungere funzioni personalizzate e persino scrivere codice da diversi linguaggi di programmazione come C/C++, Java, ecc., senza ricompilare il database.

PostgreSQL viene utilizzato da note aziende tecnologiche come Apple, Fujitsu, Red Hat, Cisco, Juniper Network, ecc.

In questo articolo ti mostreremo come installare, proteggere e configurare il server di database PostgreSQL in Debian 10.

Requisiti:

  1. Installa un server minimo Debian 10 (Buster).

Installazione di PostgreSQL Server su Debian 10

Per installare il server database PostgreSQL, utilizza il gestore pacchetti APT predefinito, che installerà il server e il client PostgreSQL 11.

apt install postgresql-11 postgresql-client-11

Su Debian, come qualsiasi altro demone, il database Postgres viene inizializzato immediatamente dopo il completamento dell'installazione del pacchetto, come mostrato nello screenshot seguente.

Per verificare se il database Postgres è veramente inizializzato, puoi utilizzare l'utilità pg_isready che controlla lo stato di connessione di un server PostgreSQL, come segue.

pg_isready 

Inoltre, in systemd, anche il servizio Postgres viene avviato automaticamente e abilitato all'avvio all'avvio del sistema. Per assicurarti che il servizio sia attivo e funzionante, esegui il comando seguente.

systemctl status postgresql

Di seguito sono riportati altri comandi systemctl utili per gestire il servizio Postgres in systemd.

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql
systemctl reload postgresql 		#this reloads the service configuration

Protezione e configurazione del database PostgreSQL

Per impostazione predefinita, Postgres utilizza il concetto di ruoli per gestire le autorizzazioni di accesso al database e i ruoli del database sono concettualmente completamente separati dagli utenti del sistema operativo. Un ruolo può essere un utente o un gruppo e un ruolo che dispone del diritto di accesso è chiamato utente.

Un sistema appena inizializzato contiene sempre un ruolo predefinito chiamato postgres, ha lo stesso nome dell'account utente del sistema operativo chiamato postgres, che viene utilizzato per accedere a psql (Postgres shell) e altri programmi di database.

L'account utente del sistema Postgres non è protetto tramite password, per proteggerlo è possibile creare una password utilizzando l'utilità passwd.

passwd postgres

Inoltre, il ruolo Postgres (o l'utente amministrativo del database, se preferisci) non è protetto per impostazione predefinita. È inoltre necessario proteggerlo con una password. Ora passa all'account utente di sistema postgres e al ruolo postgres (ricordati di impostare una password complessa e sicura) come mostrato.

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"

Quindi esci dall'account postgres per procedere con la guida.

Configurazione dell'autenticazione del client

Il file di configurazione principale di Postgres si trova in /etc/postgresql/11/main/postgresql.conf. Oltre a questo file, Postgres utilizza altri due file di configurazione modificati manualmente, che controllano l'autenticazione del client.

L'autenticazione del client è controllata dal file di configurazione /etc/postgresql/11/main/pg_hba.conf. Postgres fornisce molti metodi di autenticazione client diversi, inclusa l'autenticazione basata su password. Le connessioni client vengono autenticate in base all'indirizzo host del client, al database e all'utente.

Se scegli di utilizzare l'autenticazione basata su password, puoi implementare uno di questi metodi: md5 o password che funzionano in modo simile tranne per il modo in cui la password viene trasmessa attraverso la connessione , vale a dire rispettivamente MD5-hash e testo in chiaro.

L'utilizzo dell'autenticazione password MD5 impedisce lo sniffing delle password da parte degli hacker ed evita di memorizzare le password sul server in testo semplice. Il metodo password può essere utilizzato in modo sicuro solo se la connessione è protetta dalla crittografia SSL.

Per questa guida, mostreremo come configurare l'autenticazione con password MD5 per l'autenticazione del client.

vim /etc/postgresql/11/main/pg_hba.conf 

Cerca la riga seguente e modifica il metodo di autenticazione in md5 come mostrato nello screenshot.

local   all             all                                     md5

Salvare le modifiche nel file ed uscire. Quindi applica le modifiche recenti riavviando il servizio Postgres come segue.

systemctl restart postgresql

Creazione di un nuovo database e di un ruolo/utente del database in PostgreSQL

In quest'ultima sezione mostreremo come creare un nuovo utente del database e un ruolo del database per gestirlo. Innanzitutto, passa all'account postgres e apri la shell Postgres come segue.

su - postgres
psql

Per creare un database chiamato “test_db ” esegui il seguente comando SQL.

postgres=# CREATE DATABASE test_db;

Quindi crea un utente del database (un ruolo con diritti di accesso) che gestirà il nuovo database come segue.

postgres=#CREATE USER test_user PASSWORD ‘securep@ss_here’;     #assumes login function by default

Per connetterti a test_db come utente test_user, esegui il comando seguente.

 
psql -d  test_db  -U test_user

Per ulteriori informazioni, consultare la documentazione di PostgreSQL 11.

Conclusione

Questo è se per ora! In questa guida, abbiamo mostrato come installare, proteggere e configurare il server di database PostgreSQL in Debian 10. Hai qualche domanda o pensiero da condividere? Utilizza il modulo commenti qui sotto per raggiungerci.