Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Definizione dei dati > Privilegi
PrecedenteModifica di TabelleSchemiSuccessivo

5.6. Privilegi

Quando crei un oggetto di database, ne divieni il suo possessore. Di default, solo il possessore diun oggetto può fare qualcosa su di lui. Per permettere agli altri utenti di usarlo, devono essere garantiti privilegi. (Comunque, gli utenti che sono superuser possono sempre accedere a qualsiasi oggeto.)

Ci sono diversi privilegi differenti: SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE e USAGE. I privilegi applicabili ad un particolare oggetto variano a seconda del tipo di oggetto (tabella, funzione, etc.) Per maggiori informazioni sui diversi tipi di privilegi supportati da PostgreSQL™, consulta la pagina di riferimento a GRANT(7) . Anche le sezioni e i capitoli seguenti ti mostreranno come sono usati questi privilegi.

Il diritto a modificare o distruggere un oggetto è sempre un privilegio del possessore.

[Nota]

Nota

Per cambiare il possessore di una tabella, indice, sequenza, o vista, usa il comando ALTER TABLE(7) Ci sono corrispondenti comandi ALTER per gli altri tipi di oggetti.

Per assegnare privilegi, si usa il comando GRANT. Per esempio, se joe è un utente esistente, e accounts è una tabella esistente, il privilegio di aggiornare la tabella è concesso con:

GRANT UPDATE ON accounts TO joe;

Scrivere ALL al posto di un privilegio specifico concede tutti i privilegi che sono rilevanti per il tipo di oggetto.

Il nome «utente» speciale PUBLIC può essere usato per concedere privilegi ad ogni utente del sistema. Inoltre, i role «group» possono essere impostati per aiutarti a gestire i privilegi quando ci sono molti utenti per un database -- per dettagli guarda Capitolo 20, Privilegi e ruoli del database.

Per revocare un privilegio, usa il comando chiamato appropriamente REVOKE:

REVOKE ALL ON accounts FROM PUBLIC;

I privilegi speciali del possessore dell'oggetto (es., il diritto ai comandi DROP, GRANT, REVOKE, ecc.) sono sempre impliciti dell'essere il possessore, e non possono essere concessi o revocati. Ma il possessore dell'oggetto può scegliere di revocare i suoi privilegi, per esempio, per rendere una tabella a sola lettura per sè oltre che per gli altri.

Solitamente, solo il possessore dell'oggetto (o un superuser) puà concedere o revocare privilegi su un oggetto. Comunque, è possibile concedere un privilegio «con l'opzione grant» che dà al beneficiario il diritto di concederlo a turno agli altri. Se l'opzione grant successivamente è revocata, allora tutti quelli che hanno ricevuto il privilegio da quel beneficiario (direttamente o attraverso una catena di grant) perderanno il privilegio. Per dettagli vedi le pagine di referenza GRANT(7) e REVOKE(7).

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Definizione dei dati > Privilegi
PrecedenteModifica di TabelleSchemiSuccessivo