Installare e utilizzare postgresql il DB open source più avanzato oggi esistente (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
- Articolo precedente Installare e utilizzare postgresql il DB open source più avanzato oggi esistente (Parte I)
- Articolo successivo Installare e utilizzare postgresql il DB open source più avanzato oggi esistente (Parte III)
Ti potrebbe interessare anche
commenta la notizia
Chiedi alla nostra Redazione!