Differenze tra le versioni di "Installazione Server PostgreSQL"
Riga 27: | Riga 27: | ||
<UL Type=disc><LI>'''postgresql.conf''': contiene le opzioni globali di configurazione del server, in particolare | <UL Type=disc><LI>'''postgresql.conf''': contiene le opzioni globali di configurazione del server, in particolare | ||
<UL Type=circle><LI>''listen_address'': indica le interfacce sulle quali il server accetta richieste di connessione; si possono indicare indirizzi ip separati da virgola; la chiave ''localhost'', ''valore predefinito'', indica la macchina su cui è in esecuzione postgresql, il carattere '*' indica tutte le interfacce attive <SUP>[[#Note|1]]</sup></li> | <UL Type=circle><LI>''listen_address'': indica le interfacce sulle quali il server accetta richieste di connessione; si possono indicare indirizzi ip separati da virgola; la chiave ''localhost'', ''valore predefinito'', indica la macchina su cui è in esecuzione postgresql, il carattere '*' indica tutte le interfacce attive <SUP>[[#Note|1]]</sup></li> | ||
− | <LI>''port'': indica la porta tcp su cui verranno soddisfatte le richieste di connessione, il valore predefinito è 5432</li></ul></li> | + | <LI>''port'': indica la porta tcp su cui verranno soddisfatte le richieste di connessione, il valore predefinito è 5432</li></ul></li></ul> |
− | <LI>'''pg_hba.conf''': consente di configurare i metodi di accesso ed autenticazione al server.</li></ul> | + | <UL Type=disc><LI>'''pg_hba.conf''': consente di configurare i metodi di accesso ed autenticazione al server.</li></ul> |
Riga 35: | Riga 35: | ||
==Connessione in locale== | ==Connessione in locale== | ||
+ | Il processo di connessione a PostgreSQL può avvenire in modi differenti, nel corso della presente guida utilizzeremo i metodi <SUP>[[#Note|2]]</sup>: | ||
+ | <UL><LI>''local'': connessione dalla macchina locale; l'utente che tenta di accedere al server è un utente locale della macchina</li></ul> | ||
+ | <UL><LI>''host'': il tentativo di connessione viene eseguito dall'utente di una macchina collegata in rete.</li></ul> | ||
+ | Anche l'autenticazione dell'utente viene effettuata con differenti metodologie, qui vedremo i metodi: | ||
+ | <UL><LI>''trust'': considera l'utente sicuro, non necessita password.</li></ul> | ||
+ | <UL><LI>''md5'': l'autenticazione viene effettuata tramite una password cifrata.</li></ul> | ||
+ | Durante la fase di installazione viene configurato l'utente '''''postgres''''' <SUP>[[#Note|3]]</sup>, che può effettuare qualsiasi attività sul server. Tentiamo quindi una connessione al server specificando il nome utente (-U) ed il database (-d) al quale accedere. | ||
+ | emanuele@Emy-Pav:~$ psql -U postgres -d template1 | ||
+ | psql: FATAL: Peer authentication failed for user "postgres" | ||
+ | il messaggio di risposta del server ci dice che l'autenticazione tramite metodo ''Peer'' è fallita. Vediamo quindi come garantire l'accesso al server per l'utente '''''postgres'''''. | ||
+ | |||
+ | Apriamo con un editor il file pg_hba.conf | ||
+ | emanuele@Emy-Pav:/etc/postgresql/9.4/main$ sudo -u postgres vi pg_hba.conf | ||
+ | [sudo] password for emanuele: | ||
+ | e scendiamo fino alla sezione: | ||
+ | # | ||
+ | # Database administrative login by Unix domain socket | ||
+ | local all postgres peer | ||
+ | ed impostiamo il metodo di autenticazione trust | ||
+ | # | ||
+ | # Database administrative login by Unix domain socket | ||
+ | local all postgres trust | ||
+ | quindi ricarichiamo la configurazione con: | ||
+ | emanuele@Emy-Pav:/etc/postgresql/9.4/main$ sudo service postgresql reload | ||
+ | e proviamo nuovamente la connessione. | ||
+ | emanuele@Emy-Pav:/etc/postgresql/9.4/main$ psql -U postgres -d template1 | ||
Riga 42: | Riga 68: | ||
=Note= | =Note= | ||
[1] Le interfacce wireless controllate da network manager non vengono configurate in quanto il processo ''postmaster'' che controlla il server viene avviato prima che siano attivate. | [1] Le interfacce wireless controllate da network manager non vengono configurate in quanto il processo ''postmaster'' che controlla il server viene avviato prima che siano attivate. | ||
+ | |||
+ | [2] Vedere la documentazione ufficiale per una descrizione dei vari metodi. | ||
+ | |||
+ | [3] Data la natura di SUPERUSER di postgres se ne sconsiglia l'uso per attività di sviluppo. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
<FONT Color=red size=4><B>Pagina in costruzione !</b></font> | <FONT Color=red size=4><B>Pagina in costruzione !</b></font> |
Versione delle 17:53, 1 nov 2015
(guida a cura del membro sotema del forum gambas-it.org)
Indice
Installazione pacchetti
Per eseguire un Server PostgreSQL su Ubuntu e derivate dovremo installare i pacchetti postgresql e postgresql-contrib. Per la progettazione di database è possibile installare il programma PgAdmin3.
Sebbene non sia indispensabile postgresql-contrib risulta molto comodo poiché comprende admin-pack, una serie di utilità sfruttate da PgAdminIII.
Procediamo quindi con l'installazione; da terminale digitiamo il comando:
emanuele@Emy-Pav:~$ sudo apt-get install postgresql postgresql-contrib pgadmin3
al termine del processo avremo un Server PostgreSQL attivo sulla macchina locale.
Configurazione del Server
I file di configurazione
I file di configurazione di PostgreSQL sono contenuti nel percorso /etc/postgresql/x.y/main, dove x.y rappresentano la versione del server in esecuzione; pertanto se abbiamo installato la versione 9.4 il percorso sarà /etc/postgresql/9.4/main.
emanuele@Emy-Pav:/etc/postgresql/9.4/main$ ls -C1 environment pg_ctl.conf pg_hba.conf pg_hba.conf.ok pg_ident.conf postgresql.conf start.conf
di questi file ci interessano, al fine della presente guida, i due seguenti:
- postgresql.conf: contiene le opzioni globali di configurazione del server, in particolare
- listen_address: indica le interfacce sulle quali il server accetta richieste di connessione; si possono indicare indirizzi ip separati da virgola; la chiave localhost, valore predefinito, indica la macchina su cui è in esecuzione postgresql, il carattere '*' indica tutte le interfacce attive 1
- port: indica la porta tcp su cui verranno soddisfatte le richieste di connessione, il valore predefinito è 5432
- pg_hba.conf: consente di configurare i metodi di accesso ed autenticazione al server.
Connessione ed autenticazione
Connessione in locale
Il processo di connessione a PostgreSQL può avvenire in modi differenti, nel corso della presente guida utilizzeremo i metodi 2:
- local: connessione dalla macchina locale; l'utente che tenta di accedere al server è un utente locale della macchina
- host: il tentativo di connessione viene eseguito dall'utente di una macchina collegata in rete.
Anche l'autenticazione dell'utente viene effettuata con differenti metodologie, qui vedremo i metodi:
- trust: considera l'utente sicuro, non necessita password.
- md5: l'autenticazione viene effettuata tramite una password cifrata.
Durante la fase di installazione viene configurato l'utente postgres 3, che può effettuare qualsiasi attività sul server. Tentiamo quindi una connessione al server specificando il nome utente (-U) ed il database (-d) al quale accedere.
emanuele@Emy-Pav:~$ psql -U postgres -d template1 psql: FATAL: Peer authentication failed for user "postgres"
il messaggio di risposta del server ci dice che l'autenticazione tramite metodo Peer è fallita. Vediamo quindi come garantire l'accesso al server per l'utente postgres.
Apriamo con un editor il file pg_hba.conf
emanuele@Emy-Pav:/etc/postgresql/9.4/main$ sudo -u postgres vi pg_hba.conf [sudo] password for emanuele:
e scendiamo fino alla sezione:
# # Database administrative login by Unix domain socket local all postgres peer
ed impostiamo il metodo di autenticazione trust
# # Database administrative login by Unix domain socket local all postgres trust
quindi ricarichiamo la configurazione con:
emanuele@Emy-Pav:/etc/postgresql/9.4/main$ sudo service postgresql reload
e proviamo nuovamente la connessione.
emanuele@Emy-Pav:/etc/postgresql/9.4/main$ psql -U postgres -d template1
Note
[1] Le interfacce wireless controllate da network manager non vengono configurate in quanto il processo postmaster che controlla il server viene avviato prima che siano attivate.
[2] Vedere la documentazione ufficiale per una descrizione dei vari metodi.
[3] Data la natura di SUPERUSER di postgres se ne sconsiglia l'uso per attività di sviluppo.
Pagina in costruzione !