Progetto

Generale

Profilo

PostgresInitConf » Cronologia » Versione 8

Amministratore Truelite, 18-03-2008 15:13

1 1 Amministratore Truelite
[[TracNav(TOC)]]
2 4 Amministratore Truelite
= Configurazione di base di PostgresSQL =
3 1 Amministratore Truelite
4
Si sono riassunte qui le istruzioni per effettuare alcune configurazioni di
5
base sul database PostgresSQL. Si tenga presente che installando il pacchetto
6
{{{postgres}}} su Debian Etch verrà installata la versione 7.4, se si vuole
7
utilizzare la versione più recente si dovrà installare esplicitamente il
8
pacchetto {{{postgres-8.1}}}.
9
10 2 Amministratore Truelite
Si tenga presente che è sempre possibile installare due versioni diverse del
11
database in contemporanea, ed il sistema di configurazione di Debian si
12
prenderà carico di farli funzionare insieme, assegnandogli porte diverse: il
13
primo ad essere installato userà la porta standard 5432, il secondo la
14 6 Amministratore Truelite
successiva 5433, ecc.  
15
16
Ovviamente se si rimuove la prima versione installata la seconda resterà in
17
ascolto sulla porta non standard, (se ne tenga conto qualora ci siano altri
18
programmi che usano il database installati dai pacchetti Debian, dato che
19
questi si collegano di default sulla porta 5432).
20 2 Amministratore Truelite
 
21 1 Amministratore Truelite
L'installazione di default del pacchetto di Debian consente l'accesso soltanto
22
da {{{localhost}}} e soltanto tramite l'utente locale {{{postgres}}}. Qualora
23
serva poter accedere al database via rete occorre modificare la configurazione
24 2 Amministratore Truelite
del server. Questa si trova, a seconda dell versione installata, nella
25
directory {{{/etc/postgres/7.4/main/}}} o {{{/etc/postgres/8.1/main/}}}. 
26 1 Amministratore Truelite
27 2 Amministratore Truelite
Per abilitare l'accesso via rete occorre anzitutto porre in ascolto il server
28
su un indirizzo IP raggiungibile, rispetto al default che è porsi in ascolto
29
solo sul {{{localhost}}}, per farlo occorre modificare il file
30
{{{postgressql.conf}}} inserendo una riga del tipo:
31
32 1 Amministratore Truelite
{{{
33
listen_addresses='*'
34 2 Amministratore Truelite
}}}
35
36
che abilita l'ascolto su tutti gli indirizzi locali, alternativamente si può
37
indicare un indirizzo specifico, nello stesso file si può anche indicare una
38
porta diversa da quella di default con la direttiva {{{port}}}.
39
40
Il passo successivo è modificare le regole di accesso su {{{pg_hba.conf}}}, il
41
default infatti è accettare le connessioni solo per un utente locale del
42
sistema o per accessi da {{{localhost}}}, per abilitarle da una sottorete
43
generica si dovrà introdurre una riga del tipo:
44
45
{{{
46
host    all         all         192.168.1.0/24               md5
47
}}}
48
49
che consente l'accesso agli utenti presenti sul database, identificati tramite
50
un hash MD5 (il default usato dalla gestione utenti del database). Effettuati
51
i cambiamenti si dovrà riavviare il servizio per renderli effettivi.
52
53
Per i compiti amministrativi l'installazione di default utilizza l'utente
54
locale {{{postgres}}} che consente l'accesso diretto al database con pieni
55
diritti amministrativi, per questo il primo passo da fare è sempre quello di
56
collegarsi con tale utente (in genere lo si fa con un {{{su postgres}}} dato
57
da {{{root}}}).
58
59
La linea di comando per l'accesso al database è fornita dal comando {{{psql}}}
60
che prende come primo argomento (opzionale) il nome di un database e come
61
secondo argomento (sempre opzionale) il nome di un utente, se ci si vuole
62
collegare via rete occorre usare l'opzione {{{-h}}} per indicare l'hostname (o
63
l'indirizzo IP). I comandi di base sono i seguenti:
64
65
||{{{\l}}}|| mostra l'elenco dei database||
66
||{{{\c nome}}}|| si collega al database {{{nome}}}||
67
||{{{\d}}}|| mostra l'elenco delle tabelle del database (prima ci si deve collegare allo stesso)||
68
||{{{\du}}}|| mostra l'elenco degli utenti (si deve essere collegati)||
69
70 1 Amministratore Truelite
Per verificare la lista degli utenti definiti ci si dovrà collegare al
71
database di sistema {{{postgres}}}, per questo si potrà usare direttamente il
72
comando {{{psql postgres}}}, a questo punto con il comando {{{\du}}} si avrà
73
la lista degli utenti.
74 6 Amministratore Truelite
75
Per creare un nuovo utente si può utilizzare il comando {{{createuser}}} che
76
di default crea un utente senza privilegi (a meno di non usare l'opzione
77
{{{-d}}} per consentire la creazione di altri database o l'opzione {{{-a}}}
78
per consentire la creazione di altri utenti). Il comando deve essere dato da
79
un utente con privilegi amministrativi (nel caso l'utente {{{postgres}}}), si
80
potrà allora aggiungere l'utente {{{myuser}}} con:
81 7 Amministratore Truelite
82 6 Amministratore Truelite
{{{
83
su postgres
84 8 Amministratore Truelite
createuser myuser -P
85 6 Amministratore Truelite
}}}
86 7 Amministratore Truelite
87 8 Amministratore Truelite
e si usa l'opzione {{{-P}}} per far sì che venga anche chiesta una password,
88
necessaria nel caso ci si voglia collegare da remoto con la configurazione
89
mostrata in precedenza. 
90 1 Amministratore Truelite
91 8 Amministratore Truelite
Il comando esegue una richiesta interattiva dei vari parametri per cui nel
92
nostro caso avremo che qualcosa del tipo:
93
{{{
94
postgres@davis:~$ createuser myuser -P
95
Enter password for new user: 
96
Enter it again: 
97
Shall the new user be allowed to create databases? (y/n) n
98
Shall the new user be allowed to create more new users? (y/n) n
99
CREATE USER
100
}}}
101
102 5 Amministratore Truelite
Se si vuole cambiare password ad un utente è sufficiente collegarsi con un
103 2 Amministratore Truelite
utente dotato di privilegi amministrativi al database {{{postgres}}} ed
104
eseguire il seguente comando:
105 1 Amministratore Truelite
106
{{{
107
ALTER USER nomeutente WITH PASSWORD 'nuovapassword';
108 2 Amministratore Truelite
}}}
109 7 Amministratore Truelite
110
La cancellazione di un utente si fà invece con il comando {{{dropuser}}}, che
111 8 Amministratore Truelite
però oltre a rimuovere l'utente richiede anche che non ci siano database che
112
gli appartengono; pertanto il comando fallirà se prima non si rimuovono anche
113
i database che l'utente possiede.
114 7 Amministratore Truelite
115
Per creare un database si può incece usare il comando {{{createdb}}} che
116
prende come argomento il nome del database da creare, ovviamente il comando
117
deve essere dato da un utente con privilegi amministrativi o comunque con il
118
diritto di creare dei database. Quando si crea un database questo di default
119
apparterrà all'utente che lo crea, a meno di non usare l'opzione {{{-O}}} per
120
assegnargli un proprietario. 
121
122
Nel nostro caso avendo creato un utente che non ha privilegi di creazione
123
dovremo creare il database dall'utente di amministrazione ed assegnarlo al
124
nostro utente, per cui dovremo fare:
125
{{{
126
createdb mydb -O myuser
127 1 Amministratore Truelite
}}}