2009-10-29 15 views
16

ho bisogno di concedere i privilegi a tutti gli utenti, non posso fare:Oracle - concedere privilegi a tutti gli utenti

GRANT select on table TO user1; 
GRANT select on table TO user2; 
... 

ma ci sono molti utenti. Come posso concedere questo privilegio a tutti gli utenti contemporaneamente?

ho provato:

GRANT select on table TO ALL; 

Ma questo non funziona.

risposta

23
grant select on table to public; 

Ma fai attenzione quando lo fai, assicurati che sia quello che vuoi veramente fare.

+1

Grazie, è proprio quello che dovevo fare nel mio incarico scolastico ma non riuscivo a capirlo. Avevo già completato il 99% dell'assegnazione e questa era l'ultima cosa che rimane :) –

7

È necessario utilizzare i ruoli. Concedere l'autorizzazione ai ruoli. concedere ruoli agli utenti.

+0

I ruoli sono in 'cumulativo' o 'disgiunto' di Oracle? In DB2 sono cumulativi - se ti è stato concesso un ruolo, puoi esercitare tali permessi in ogni momento. In Informix, i ruoli sono separati; si utilizza l'istruzione SET ROLE per impostare quale ruolo è attualmente attivo e in qualsiasi momento è possibile solo esercitare i privilegi forniti dal ruolo con il ruolo attualmente impostato. (È sempre possibile esercitare i privilegi concessi direttamente al proprio nome utente, ovviamente.) –

+0

un ruolo è come un utente, ma nasconde dietro di sé tutti gli utenti a cui è stato concesso quel ruolo. È consigliabile concedere l'autorizzazione su una configurazione basata sui ruoli piuttosto a ciascun utente separatamente. Penso che Oracle sia più simile a DB2. – Dani

+0

@Dani - grazie. Un test di acido è "c'è un'istruzione SET ROLE in Oracle". In caso contrario, deve funzionare come DB2; se ce n'è uno, potrebbe essere più simile a Informix. –

Problemi correlati