Newsgroup: it.comp.www.php
Titolo: come impostare i grant del database?

Nel mio sito di gestione database devo impostare i permessi al database per
i vari livelli di accesso.
Il sito è organizzato così:
Ci sono tre livelli di accesso e in ogni pagina c'è un require che segnala
il livello pagina.
C'è inoltre un require "proteggi" che verifica la presenza della sessione
utente e confronta il livello della pagina.
 (tutto il sistema è stato consigliato da Alessio del NG che qui ringrazio
ancora!)
Inoltre la barra di navigazione è dinamica e mostra all'utente già solo le
pagine alle quali può accedere.
Mi è stato richiesto di impostare anche i permessi di accesso al database
(Postgres 7.2).
Poiché non l'ho mai fatto non so qual'è la procedura più funzionale e
semplice per offrire all'utente il giusto livello di accesso anche a
Postgres.
Mi consigliate una procedura?
Aggiungo che devo impostare singoli GRANT di tabella e non di database, se è
possibile.
Grazie tante
Marcello

possibile.
Non so darti una mano con Postgresql, ma in MySQL esiste il
comando GRANT:
Per gli utenti amministratori del database, il comando da
dare è:
GRANT ALL on nomedb.* to utente@localhost identified by
'password';
In tal modo, si assegnano tutti i privilegi all'utente, per
tutte le tabelle del database nomedb.
Per gli utenti che non devono avere permessi di sxcrittura
su alcuna tabella:
GRANT SELECT on nomedb.* to altroutente@localhost
identified....
Per chi ha il permesso di scrivere (inserire dati ma non
modificare la struttura delle tabelle) soltanto su
particolari tabelle:
GRANT INSERT ON nomedb.nometabella TO nuovoutente@locahost
identified by...
Non so se esiste un comando simili in postgresql, ma credo
di sì. Altrimenti, di sicuro avrà delle tabelle in cui si
descrivono i permessi per ogni singolo utente. In questo
caso, dovrai agire su quelle tabelle (fai attenzione:) ).
GRANT INSERT
-- 
WEbdOM webmaster di
Metronic.It mobile phone philosophy

 Postgres.
da psql: \h grant
Command:     GRANT
Description: define access privileges
Syntax:
GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } 
[,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] objectname [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...]
se non ti è ancora chiaro (non ancora?), fai sapere.
se non hai altri utenti, \h create user
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/gnu/why-gnu-linux.it.html

 ha scritto nel messaggio
news:H5HI8.20605$8x3.4...@twister1.libero.it...


 Da dove la legge nel php?
sul manuale c'è!!
$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn = pg_connect ($conn_string);
questa sintassi, sebbene sembrerebbe specifica per php 4.2.1 leggendo il 
nuovo manuale, funzionava anche sul 4.0 (era descritta anche nel vecchio).
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/selling.it.html

vizioso!
Infatti, non sono sicuro che sia necessario definire gli utenti a
livello database, ho realizzato una interfaccia del genere dove
l'amministratore poteva creare utenti ed assegnare loro solo alcuni
diritti:
ho creato 3 tabelle
utenti(id_utente,......)
attivita(id_attivita,....)
permessi(id_attivita,id_utente)
e poi in ogni pagina relativa ad una certa attivita'
require_perm(id_attivita)
Non so se sono stato chiaro :-)
Bonf

 Non so se sono stato chiaro :-)
chiaro e limpido come il cielo in una giornata d'estate!
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://groups.google.com

 ha scritto nel messaggio
news:qk5J8.26935$8x3.5...@twister1.libero.it...


 ;-)
si. direi che UNA delle TANTE alternative è questa.
secondo me è abbastanza valida, anche perché così puoi comunque dare solo 
le grant che ti servono a livello db.
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.ruby-lang.org/en/