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