androide

Come installare postgresql su debian 9

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. PostgreSQL ha molte caratteristiche avanzate come backup online, punto nel tempo di recupero, le transazioni nidificate, SQL e JSON interrogazione, controllo della concorrenza multi-versione (MVCC), la replica asincrona e altro ancora.

In questo tutorial, ti mostreremo come installare PostgreSQL su Debian 9 ed esplorare i fondamenti dell'amministrazione di base del database.

Prerequisiti

Prima di procedere con questa esercitazione, assicurarsi che l'utente che ha effettuato l'accesso abbia i privilegi di sudo.

Installazione di PostgreSQL

Al momento della stesura di questo articolo, l'ultima versione di PostgreSQL disponibile nei repository Debian è PostgreSQL versione 9.6.

Per installare PostgreSQL sul tuo server Debian completare i seguenti passi:

  1. Iniziare l'aggiornamento dell'indice pacchetto locale:

    sudo apt update

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

    sudo apt install postgresql postgresql-contrib

    Al termine dell'installazione, il servizio PostgreSQL si avvierà automaticamente. Per verificare l'installazione ci collegheremo al server di database PostgreSQL usando l'utility psql e stamperemo la versione del server:

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

    L'output sarà simile al seguente:

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

Ruoli e metodi di autenticazione PostgreSQL

PostgreSQL gestisce le autorizzazioni di accesso al database usando il concetto di ruoli. Un ruolo può rappresentare un utente del database o un gruppo di utenti del database.

PostgreSQL supporta numerosi metodi di autenticazione. I metodi più comunemente usati sono:

  • Trust - Con questo metodo, il ruolo in grado di connettersi senza password, fino a quando i criteri definiti nel pg_hba.conf sono met.Password - Un ruolo può collegarsi fornendo una password. Le password possono essere memorizzate come scram-sha-256 md5 e password (testo in chiaro) Ident: questo metodo è supportato solo su connessioni TCP / IP. Funziona ottenendo il nome utente del sistema operativo del client, con una mappatura del nome utente facoltativa.Peer: identico a Ident, ma è supportato solo su connessioni locali.

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

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

Per accedere al server PostgreSQL come utente postgres primo luogo è necessario passare a l'utente postgres e poi si può accedere a una PostgreSQL rapido utilizzando l' psql utility:

sudo su - postgres psql

Da qui è possibile interagire con l'istanza 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 in genere utilizzato solo dall'host locale e si consiglia di non impostare la password per questo utente.

Creazione di PostgreSQL Ruolo e Database

È possibile creare nuovi ruoli dalla riga di comando utilizzando il comando createuser . Solo i superutente e i ruoli con privilegio CREATEROLE possono creare nuovi ruoli.

Nel seguente esempio, creeremo un nuovo ruolo chiamato john un database chiamato johndb e garantiremo i privilegi sul database.

  1. Creare un nuovo ruolo PostgreSQL

    Il seguente comando creerà un nuovo ruolo chiamato john:

    sudo su - postgres -c "createuser john"

    Creare un nuovo database PostgreSQL

    Creare un nuovo database denominato johndb utilizzando il createdb comando:

    sudo su - postgres -c "createdb johndb"

    Concedi privilegi

    Per concedere le autorizzazioni all'utente john sul database che abbiamo creato nel passaggio precedente, connettiti alla shell PostgreSQL:

    sudo -u postgres psql

    ed esegui la seguente query:

    grant all privileges on database johndb to john;

Abilitare l'accesso remoto al server PostgreSQL

Di default PostgreSQL, il server è in ascolto solo sull'interfaccia locale 127.0.0.1 . Per abilitare l'accesso remoto al server PostgreSQL aprire il file di configurazione postgresql.conf e aggiungere listen_addresses = '*' nei CONNECTIONS AND AUTHENTICATION sezione.

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;

salvare il file e riavviare il servizio PostgreSQL con:

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

Come puoi vedere dall'output sopra il server PostgreSQL è in ascolto su tutte le interfacce (0.0.0.0).

L'ultimo passaggio è configurare il server per accettare le connessioni remote modificando il file pg_hba.conf .

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

/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

Conclusione

Hai imparato come installare e configurare PostgreSQL sul tuo server Debian 9. Per ulteriori informazioni su questo argomento, consultare la documentazione di PostgreSQL.

database postgresql debian