Re: Non riesco ad usere postgresql

2015-11-09 Per discussione Marco Gaiarin
Mandi! Gollum1
  In chel di` si favelave...

> si accettano suggerimenti.

Se è debian (ma credo che anche altre distro facciano uguale...) il file di
configurazione dell'autenticazione del cluster (pg_hba.conf) prevede
normalmente accesso ''seamless'' (senza password) solo in locale e usando la
login in questione.

Quindi è normale che 'postgres' sia accessibile solo dall'utente unix
postgres, e normalmente non ha una password impostata.


Credo sia anche abilitato di default l'accesso in md5 (eg, password
impostate internamente) da ''localhost''.

-- 
  But somebody's gonnahave to answer, the time is coming soon
  when the blind remove their blinders
  and the speechless speak the truth(T. Chapman)
 



Re: Non riesco ad usere postgresql

2015-11-08 Per discussione Gollum1
Il 8 novembre 2015 10:49, Alessandro Pellizzari  ha scritto:

> Una volta che sei "dentro" postgres è come se fosse un S.O. a sè stante,
> con i suoi permessi, i suoi utenti, ecc.

Grazie Alessandro, e grazie anche a Giuseppe. farò tesoro delle
informazioni che mi avete passato... molto probabilmente, seguirò i
consigli che mi hai passato, Alessandro... ma mi studierò anche il
link passato da GIuseppe.

Byez
-- 
Gollum1 - http://www.gollumone.it
Tesoro, dov'é il mio teoro...



Re: Non riesco ad usere postgresql

2015-11-08 Per discussione Giuseppe Sacco
Il giorno dom, 08/11/2015 alle 00.19 +0100, Gollum1 ha scritto:
[...]
> 
> creare
> comunque un utente di sistema legato al progetto, a cui poi assegnerò
> i permessi per creare i vari DB, o creare un utente di postgres con
> le
> stesse caratteristiche, ma slegato da qualsiasi utente reale del
> sistema? In questo secondo caso, il dubbio che mi sovviene, i file
> che
> vengono creati per contenere il DB, a chi sono "intestati" come
> user:group?

L'installazione Debian prevede la creazione dei cluster. Con il comando
pg_lsclusters hai l'elenco dei cluster. Un cluster è un contenitore di
database (ne può ospitare quanti vuoi), hai dei limiti di risorse (ad
esempio la quantità massima di memoria RAM da usare), è gestito da un
certo utente di sistema e scrive i file con quell'utente, contiene la
definizione degli utenti (che possono avere diritti per accedere ai
vari database del cluster). Puoi anche avere un cluster con postgresq
9.4 e uno con il software di un'altra versione. Il comando
pg_lsclusters risponde alla tua ultima domanda. Vedi anche
pg_createcluster pg_dropcluster pg_upgradecluster.

Quindi, se vuoi una separazione fisica totale, usa un cluster per ogni
utente (e potrai avere file in directory separate e di proprietà di
utenti diversi); se invece vuoi avere solo database distinti allora ti
basta un solo cluster con vari database (puoi mantenere metodi di
autenticazione separata per ogni singolo database). C'è anche la
possibilità di usare un solo database (puoi usare strumenti per il
dump/restore del singolo database, eccetera) e memorizzare i dati in
schemi diversi. In quest'ultimo caso ti basterebbe un solo
utente/password per l'applicazione, e poi dovresti accedere alle
tabelle nel formato nomeschema.nometabella (puoi anche, una volta
effettuata la connessione, indicare qual è lo schema principale nel
quale cercare le tabelle, senza dover indicare ogni volta anche lo
schema).

In ogni caso -- per rispondere alla penultima domanda -- gli utenti del
database sono separati da quelli di gestione del cluster.

Ciao,
Giuseppe



Re: Non riesco ad usere postgresql

2015-11-08 Per discussione Alessandro Pellizzari
Il Sun, 08 Nov 2015 00:19:05 +0100, Gollum1 ha scritto:

> Non volendo andare a scomodare ldap e compagnia bella, non ne ho
> bisogno, almeno in questo contesto in cui sto facendo un po' di
> sperimentazione sul mio pc, come pensi che sia meglio muoversi? creare
> comunque un utente di sistema legato al progetto, a cui poi assegnerò i
> permessi per creare i vari DB, o creare un utente di postgres con le
> stesse caratteristiche, ma slegato da qualsiasi utente reale del
> sistema? In questo secondo caso, il dubbio che mi sovviene, i file che
> vengono creati per contenere il DB, a chi sono "intestati" come
> user:group?

Io ti consiglio di creare utenti solo postgres (non di sistema), attivando 
la connessione tramite password (md5) in pg_hba.conf per tutti gli utenti 
di rete (quindi non local).

A ogni utente puoi dare il permesso createdb se vuoi che possa crearsi 
nuovi DB da solo, o non darglielo se vuoi controllare tu cosa può creare.
Tutti i database creati da quell'utente saranno automaticamente suoi, e 
potrà eventualmente (se glielo permetti) dare permessi ad altri utenti.

Non preoccuparti dei permessi sul filesystem. Se ne occupa postgres, che 
gira come utente postgres, ed ha accesso a tutti i database di tutti gli 
utenti.

In pratica l'utente "postgres" è il corrispondente di "root" dentro 
postgres.

Una volta che sei "dentro" postgres è come se fosse un S.O. a sè stante, 
con i suoi permessi, i suoi utenti, ecc.

Bye.




Re: Non riesco ad usere postgresql

2015-11-07 Per discussione Gollum1
Il 8 novembre 2015 00:08, Giuseppe Sacco
 ha scritto:

grazie giuseppe dell'attenzione.

> Per maggiori informazioni sulle modalità di autenticazione:
> http://www.postgresql.org/docs/current/static/auth-methods.html

gli scenari in cui mi devo muovere sono sostanzialmente due:

1) in fase di sviluppo uso il mio portatile, sia per farci girare il
server web, che il server postgres, potrei anche abilitare il modo di
accesso trust e se non ho capito male, limitarlo alle sole connessione
che arrivano da localhost.

2) quando il progetto sarà spostato sulla macchina di produzione, che
(purtroppo) sarà una macchina RH6, in cui comunque postgres e apache
sono installati nella stessa macchina, posso creare l'utente nel
sistema che farà girare le pagine web (mettendolo nel gruppo www-data)
e contemporaneamente sarà il padrone dei DB che creerò attraverso
l'applicativo web. in questo secondo caso l'accesso login/password
dovrebbe andare bene...

ti sembra una soluzione percorribile?

la gestione con ldap, potrebbe solleticarmi l'idea per un altro
progetto, in cui però a questo punto vorrebbe dire che ogni utente che
accede all'applicativo web, praticamente si crea il suo DB personale
nel sistema (che potrebbe anche essere coerente con il tipo di
progetto, che non devono essere dati condivisi, ma personali).

Byez
-- 
Gollum1 - http://www.gollumone.it
Tesoro, dov'é il mio teoro...



Re: Non riesco ad usere postgresql

2015-11-07 Per discussione Giuseppe Sacco
Il giorno sab, 07/11/2015 alle 23.46 +0100, Gollum1 ha scritto:
> Ho installato postgres, server e client, però non riesco ad accedere
> al DB di default di postgres, che dovrebbe avere utente e password
> sempre uguali a postgres.

non mi pare che ci sia una password preimpostata. Difatti
l'autenticazione per quell'utente è "peer" e funziona solo tramite
pipe. Se ti colleghi via TCP oppure se non usi psql da utente postgres,
non va.

Puoi però creare altri utenti e database. Ad esempio se il tuo utente
linux è gollum1, puoi dare i comandi, da utente postgres,
createuser gollum1
createdb --owner gollum1 gollum1

e poi, da utente gollum1, dando il solo comando "psql" si dovrebbe
collegare usando il tuo utente al tuo database.

Il manuale di createuser ti mostra come dare diritti speciali
all'utente che crei.

Ciao,
Giuseppe



Re: Non riesco ad usere postgresql

2015-11-07 Per discussione Giuseppe Sacco
Il giorno dom, 08/11/2015 alle 00.00 +0100, Gollum1 ha scritto:
[...]
> quindi se io ho un applicativo che gira attraverso un server web, che
> sia scritto in php o python, per permettergli di creare e gestire un
> suo DB, come presumevo, non può usare l'utenza postgres con password
> postgres, ma devo prima creare una utenza dedicata a questo
> applicativo (che non deve essere necessariamente una utenza del
> sistema, o sbaglio?)...

Far utilizzare l'utente postgres agli applicativi sarebbe come dare la
password di root a tutti gli utenti di linux.

Puoi creare tutti gli utenti che vuoi. Nel caso il nome corrisponda
all'utente di sistema operativo puoi fare in modo che non venga chiesta
la password al momento della connessione, altrimenti imposti anche una
password per l'utente postgres e ti colleghi indicando utente e
password. Oppure puoi prendere gli utenti da qualsia altra fonte: io ad
esempio configuro spesso postgres perché prenda utenti/password da un
LDAP.

Per maggiori informazioni sulle modalità di autenticazione:
http://www.postgresql.org/docs/current/static/auth-methods.html

Ciao,
Giuseppe



Re: Non riesco ad usere postgresql

2015-11-07 Per discussione Gollum1
Il 7 novembre 2015 23:53, Giuseppe Sacco
 ha scritto:
> Il giorno sab, 07/11/2015 alle 23.46 +0100, Gollum1 ha scritto:
>> Ho installato postgres, server e client, però non riesco ad accedere
>> al DB di default di postgres, che dovrebbe avere utente e password
>> sempre uguali a postgres.
>
> non mi pare che ci sia una password preimpostata. Difatti
> l'autenticazione per quell'utente è "peer" e funziona solo tramite
> pipe. Se ti colleghi via TCP oppure se non usi psql da utente postgres,
> non va.
>
> Puoi però creare altri utenti e database. Ad esempio se il tuo utente
> linux è gollum1, puoi dare i comandi, da utente postgres,
> createuser gollum1
> createdb --owner gollum1 gollum1
>
> e poi, da utente gollum1, dando il solo comando "psql" si dovrebbe
> collegare usando il tuo utente al tuo database.
>
> Il manuale di createuser ti mostra come dare diritti speciali
> all'utente che crei.
>

quindi se io ho un applicativo che gira attraverso un server web, che
sia scritto in php o python, per permettergli di creare e gestire un
suo DB, come presumevo, non può usare l'utenza postgres con password
postgres, ma devo prima creare una utenza dedicata a questo
applicativo (che non deve essere necessariamente una utenza del
sistema, o sbaglio?)...

dall'esempio che mi hai scritto, e da alcune cose che ho letto in
rete, parrebbe invece che debba essere proprio una utenza del
sistema...




-- 
Gollum1 - http://www.gollumone.it
Tesoro, dov'é il mio teoro...



Re: Non riesco ad usere postgresql

2015-11-07 Per discussione Gollum1
Il 8 novembre 2015 00:08, Giuseppe Sacco
 ha scritto:
> Far utilizzare l'utente postgres agli applicativi sarebbe come dare la
> password di root a tutti gli utenti di linux.

Immaginavo...

>
> Puoi creare tutti gli utenti che vuoi. Nel caso il nome corrisponda
> all'utente di sistema operativo puoi fare in modo che non venga chiesta
> la password al momento della connessione, altrimenti imposti anche una
> password per l'utente postgres e ti colleghi indicando utente e
> password. Oppure puoi prendere gli utenti da qualsia altra fonte: io ad
> esempio configuro spesso postgres perché prenda utenti/password da un
> LDAP.
>
> Per maggiori informazioni sulle modalità di autenticazione:
> http://www.postgresql.org/docs/current/static/auth-methods.html
>

Non volendo andare a scomodare ldap e compagnia bella, non ne ho
bisogno, almeno in questo contesto in cui sto facendo un po' di
sperimentazione sul mio pc, come pensi che sia meglio muoversi? creare
comunque un utente di sistema legato al progetto, a cui poi assegnerò
i permessi per creare i vari DB, o creare un utente di postgres con le
stesse caratteristiche, ma slegato da qualsiasi utente reale del
sistema? In questo secondo caso, il dubbio che mi sovviene, i file che
vengono creati per contenere il DB, a chi sono "intestati" come
user:group?


-- 
Gollum1 - http://www.gollumone.it
Tesoro, dov'é il mio teoro...