Condividi su Facebook
PostgreSQL ~ Il DBMS opensource
Scritto da: Monska il 20/07/2009 alle 12:50
Tag: Linux.Visto 3098 volte.


PostgreSQL

PostgreSQL è un DBMS, acronimo di DataBase Management System, ovvero un pacchetto software che consente la gestione e la manipolazione di database, quindi di dati strutturati.
Questo software viene rilasciato in modalità open source sul sito Postgresql.org.

Poichè in ambiente linux per un corretto funzionamento del DBMS bisogna avere dei piccoli accorgimenti, in questo tutrial spiegheremo come configurare alla perfezione postgresql.

Per prima cosa dobbiamo installare il software sul nostro computer; generalmente nei nostri repository è presente una versione di PostgreSQL, in caso contrario o se volete scaricare l'ultima versione a questo link.

Una volta installato, ci sono due file molto importanti da modificare:

Code:

postgresql.conf
pg_hba.conf

Questi due file si trovano in directory differenti in base alle distro, per esempio:

Code:

Debian: /etc/postgresql/<version>/main/
Fedora: $POSTGRES_HOME/data/

Il primo file contiene la vera e propria configurazione e dobbiamo modificare i seguenti paramentri:

Code:

listen_addresses = 'localhost'   se vogliamo che le connessioni siano solo locali
listen_addresses = '*'   se vogliamo che tutti possano usufruire del servizio
listen_addresses = '192.168.1.2,192.168.1.3'   se vogliamo che solo determinati IP possano usufruire del servizio

Il file pg_hba.conf è un "firewall", ovvero un file che ci permette di dividere i vari tipi di connessioni e di gestire i metodi di autenticazione in base ad esse ed in base all'utente.
La parte importante del file è la seguente tabella:

Code:

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all ident sameuser
# IPv4 local connections:
host all all 127.0.0.1/32 ident sameuser
# IPv6 local connections:
host all all ::1/128 ident sameuser

Nel campo TYPE è presente il tipo di connessione:
local è il tipo pipe quindi quando verrà utilizzato il client shell psql
host identifica una vera e propria connessione come quella che può avvenire tramite apache nel caso utilizzassimo postgres come database per un sito internet.

Nel campo DATABASE sono identificati i vari database presenti sul server a cui applicare la regola.

Nel campo USER sono identificati gli utenti del dbms a cui applicare la regola.

Nel campo CIDR-ADDRESS sono identificati gli indirizzi interessati alla regola.

Il campo METHOD è il campo che gestisce il tipo di autentificazione. Tra i principali abbiamo:
ident sameuser che ci permette di connetterci con lo stesso utente che ha lanciato il client senza la richiesta di password
md5 che genererà la richiesta della password da parte del DBMS
trust che garantisce fiducia a chi si connette quindi non chiederà alcuna password
reject che ignorerà tutte le connessioni

ATTENZIONE: questo file viene letto dall'alto verso il basso e la lettura viene interrota appena si trova una regola applicabile al nostro caso. Per esempio sarebbe inutile mettere sotto alla riga che dice "ident sameuser" la stessa riga con un metodo differente poichè alla lettura della prima riga il firewall si ferma e applica il metodo.

Una volta sistemati i file secondo le nostre esigenze non ci resta che riavviare il servizio

Code:

/etc/init.d/postgresql restart

e creare un nuovo utente. Per garantire una certa sicurezza, generalmente, si crea un utente con dei permessi limitati, che possa svolgere quindi solo le operazioni veramente necessarie.
Creiamo quindi un utente con la possibilità di creare database, ma che non avrà la possibilità di creare altri utenti.
Per farlo dobbiamo autenticarci nel database con un utente che sia superuser. Quindi da root digitiamo il comando

Code:
su postgres

e una volta diventati l'utente postgres, proprietario del processo DBMS, digitiamo:

Code:
psql template1

Con questo comando verremo connessi al database template1, un database che viene generato di default.
Ora per creare il nuovo utente digitiamo:

Code:
CREATE USER <nome_utente> WITH PASSWORD '<password>' CREATEDB;

Ora il nostro utente avrà la possibilità di collegarsi al dbms e creare i database dei quali ha bisogno.
Per averne conferma digitiamo il comando

Code:
\du

sulla shell di psql in modo da vedere un elenco degli user esistenti per il DBMS con relativi permessi.
ATTENZIONE: se creiamo un utente che non ha lo stesso nome del nostro utente di sistema, quando cercheremo di connetterci tramite il comando psql da shell sarà necessario specificare il nome utente.

Ora il nostro DBMS è pronto al suo utilizzo.
Per ulteriori informazioni a riguardo dei comandi di gestione e amministrazione del DBMS vi rimando ai comandi

Code:

\h

e

Code:
\?

nella shell di psql.


25/07/2009 - 12:59:41NeRON dice:
Postgresql credo che sia il miglior dbms opensource e gratuito esistente, mi chiedo perché la maggior parte degli hosting utilizzi ancora mysql :(

Fondiamo il PSQL User Group?!?!?! :D

Aggiungi un commento:
Nick:
captchaInserire il codice:





Licenza Creative Commons

Blog CodiceASbarre.Net di CodiceASbarre.Net sotto licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia License.
Lavoro basato su www.codiceasbarre.net.
Ulteriori permessi in merito questa licenza possono essere richiesti a info@codiceasbarre.net.


Link ad altri blog: