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 | }}} |