Installare postgresql (Parte II)

Pagina 2 di 3

Installazione di PostgreSQL

L'installazione di PostgreSQL è praticamente identica sia sotto Debian che sotto Ubuntu. Viene lanciato il classico comando per l'installazione:

root@localhost:~# aptitude install postgresql

L'installazione procederà, chiedendo di rispondere ad alcune domande (solitamente è sufficiente acconsentire). E' importante sapere alcune cose:

Data directory: tutti i dati vengono salvati in /var/lib/postgres/data come default.

Data removal policy: per default, quando rimuovi PostgreSQL, i dati vengono preservati.

Locale (inteso nel senso di "impostazioni locali" o "localizzate"): deve essere scelto in modo da accettare la codifica di caratteri che utilizzerai nel tuo sistema.

Date (inteso come data temporale): nel nostro caso, sceglieremo un formato europeo (ggmm-aaaa) invece del classico formato americano (mm-gg-aaaa).

In questa fase, postgres è un utente del DBMS (il "root"), ma NON del sistema operativo (anche se può essere certamente aggiunto in seguito). Pertanto, l'unico modo per accedere al nostro DBMS è diventare utente postgres e lanciare il comando psql (per uscire, serve q):

root@localhost:~# su - postgres

postgres@localhost:~$ psql template1

template1=# q

postgres@localhost:~$

template1 è un database che viene creato in fase di installazione. L'utilità di template1 è presto detta: per gestire PostgreSQL servono molte informazioni riguardanti utenti, basi di dati, ed altro; quale miglior cosa che salvare queste informazioni in un database interno? Il database template1 serve appunto a questo.

Importante: "database" è una collezione di dati, "DBMS" è un sistema per gestire tali dati, come appunto PostgreSQL; molto spesso il termine "database" viene invece inteso erroneamente come DBMS.

Per poter gestire le politiche di accesso di postgres o di altri utenti, è bene aprire ed editare il file /etc/postgresql/pg_hba.conf (/etc/postgresql/7.4/main/pg_hba.conf in Ubuntu).

In fondo al file si trovano delle righe di configurazione, che possono avere uno di questi sette formati:

local database user authentication-method [authentication-option]

host database user IP-address IP-mask authentication-method [authentication-option]

hostssl database user IP-address IP-mask authentication-method [authentication-option]

hostnossl database user IP-address IP-mask authentication-method [authentication-option]

host database user IP-address/IP-masklen authentication-method [authentication-option]

hostssl database user IP-address/IP-masklen authentication-method [authentication-option]

hostnossl database user IP-address/IP-masklen authentication-method [authentication-option]

Ecco una serie di esempi di configurazione del file pg_hba.conf, che dovrebbero essere sufficienti per chiarirne l'utilizzo:

# Permettmo ad ogni utente del sistema locale di connettersi a qualsiasi database, usando
# qualsiasi nome utente, tramite Unix-domain sockets (il default per le connessioni locali)
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all all trust
# Stessa cosa di sopra, usando però connessioni loopback TCP/IP.
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all 127.0.0.1 255.255.255.255 trust
# Stessa cosa di sopra, usando una maschera CIDR
# TYPE DATABASE USER IP-ADDRESS/CIDR-mask METHOD
host all all 127.0.0.1/32 trust
# Permetto ad ogni utente da qualsiasi host con IP 192.168.93.x di connettersi al database
# "template1" con lo stesso nome utente che viene riportato per quella connessione
# (tipicamente il nome utente Unix, o nome utente di sistema)
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host template1 all 192.168.93.0 255.255.255.0 ident sameuser
# Stessa cosa di sopra, usando una maschera CIDR
# TYPE DATABASE USER IP-ADDRESS/CIDR-mask METHOD
host template1 all 192.168.93.0/24 ident sameuser
# Permetto ad un utente da 192.168.12.10 di connettersi al database
# "template1" se viene fornita correttamente la password.
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host template1 all 192.168.12.10 255.255.255.255 md5
# In assenza di linee precedenti con inizio "host" , verranno rifiutate connessioni da
# 192.168.54.1 (dato che questo valore viene confrontato per primo), ma permesse connessioni
# di tipo "Kerberos V" da qualsiasi altro host su internet. La IP-MASK a zero indica che nessun
# bit dell'indirizzo IP dell'host viene considerato, e che quindi uguaglia qualsiasi host.
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all 192.168.54.1 255.255.255.255 reject
host all all 0.0.0.0 0.0.0.0 krb5
# Permetto agli utenti da 192.168.x.x di connettersi a qualsiasi database, se superano
# il controllo di identità. Se, ad esempio, ident comunica che l'utente è giovanni e che
# la richiesta di connessione a PostgreSQL è come utente "ospite" , la connessione passa
# se in pg_ident.conf è presente una riga con mappatura "omicron" in cui a "giovanni"
# è permesso connettersi come utente "ospite".
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all 192.168.0.0 255.255.0.0 ident omicron
# se queste sono le uniche linee per connessioni locali, permettono agli utenti locali di
# connettersi solo verso i loro propri database (con lo stesso nome del loro nome utente),
# fatta eccezione per amministratori e membri del gruppo "support" che invece possono
# connettersi a qualsiasi database. Il file $PG_DATA/admins contiene una lista di questi utenti.
# Le password sono richieste in qualsiasi caso.
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local sameuser all md5
local all @admins md5
local all +support md5
# Le due linee sopra possono essere combinate in una unica linea:
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all @admins,+support md5
# La colonna "database" può anche usare liste e nomi di file, ma non gruppi:
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local db1,db2,@demodbs all md5

Per qualsiasi ulteriore informazione sull'utilizzo del file pg_hba.conf, vi rimando qui:

www.postgresql.org/docs/7.4/interactive/client-authentication.html#AUTH-PG-HBA-CONF

Una volta apportate modifiche al file pg_hba.conf, è necessario riavviare il daemon di PostgreSQL, chiamato postmaster (usa pstree per visualizzarlo) con questo comando:

root@localhost:~# /etc/init.d/postgresql restart

Continua >>>

 



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Staff
Ti interessano altri articoli su questo argomento?
Chiedi alla nostra Redazione!