Sommario:
- Nozioni di base sui privilegi degli oggetti in Oracle 12c
- Come gestire i privilegi degli oggetti in Oracle 12c
Video: Creo un SITO WEB (da Zero) #05 ⋆ DATABASE, COOKIE e SESSIONE, STORAGE LOCALE 2024
Decidere quali privilegi per i database è qualcosa che ogni amministratore di database (DBA) ha determinare. Un tipo di privilegio in Oracle 12c è o privilegi bject che controlla l'accesso e la modifica dei dati.
Nozioni di base sui privilegi degli oggetti in Oracle 12c
È possibile concedere solo otto privilegi di oggetto:
-
SELECT consente al destinatario di selezionare le righe dalle tabelle
-
INSERT consente al destinatario di inserire le righe nelle tabelle.
-
UPDATE consente al destinatario di modificare le righe esistenti nelle tabelle.
-
DELETE consente al destinatario di rimuovere le righe esistenti dalle tabelle.
-
REFERENCES consente a un utente di creare una vista su o una chiave esterna per la tabella di un altro utente.
-
INDICE consente a un utente di creare un indice sulla tabella di un altro utente.
-
ALTER consente a un utente di modificare o aggiungere alla struttura della tabella di un altro utente.
-
EXECUTE consente al destinatario di eseguire le procedure di proprietà di un altro utente.
Tieni a mente questi privilegi preferiti:
-
Quando possiedi un oggetto, hai automaticamente tutti i privilegi su quell'oggetto. In altre parole, non è necessario avere SELECT sul proprio tavolo.
-
I privilegi dell'oggetto non possono essere revocati dal proprietario di un oggetto.
-
Qualunque schema proprietario dell'oggetto in definitiva controlla i privilegi di quell'oggetto.
-
Senza autorizzazione esplicita, nessun altro può gestire i privilegi dell'oggetto di detto oggetto - beh, nessuno tranne un utente che potrebbe avere il privilegio di sistema GRANT ANY OBJECT (solitamente riservato agli amministratori di database).
-
Il privilegio dell'oggetto non può essere revocato da nessuno tranne la persona che lo ha concesso ad eccezione di qualcuno con il privilegio GRANT ANY OBJECT. Nemmeno il proprietario può revocare un privilegio sul proprio oggetto a meno che non sia il concedente.
Come gestire i privilegi degli oggetti in Oracle 12c
Nei seguenti passaggi, gli utenti MAGGIE, JASON e MATT lavorano in un database che contiene ricette. Questo esempio utilizza i privilegi dell'oggetto per consentire loro di visualizzare e aggiungere più ricette.
-
Maggie accede.
-
Maggie scrive quanto segue:
Ciò consente all'utente MAGGIE di consentire a JASON di selezionare dalla sua tabella VEGETARIAN_RECIPES. Lei vede questo:
Grant ha avuto successo.
Simile a WITH ADMIN OPTION dei privilegi di sistema, i privilegi dell'oggetto hanno qualcosa chiamato WITH GRANT OPTION.
-
MAGGIE può consentire a JASON di essere in grado di INSERIRE nella sua tabella e di consentire a JASON di passare tale privilegio:
-
JASON può passare il privilegio INSERT a MATT:
-
MAGGIE non può revocare il privilegio INSERT da MATT. Deve chiedere a JASON di farlo.
-
Se JASON rifiuta di revocare i privilegi INSERT per MATT, MAGGIE può revocare il privilegio da JASON e, a sua volta, revocarlo da MATT. Si chiama revoca a cascata . Si noti che questo è diverso dai privilegi di sistema.
-
MAGGIE può revocare il privilegio INSERT da JASON e nel frattempo li revoca automaticamente da MATT:
Lo vede:
Revoke ha avuto successo.
Se un utente desidera vedere quale privilegio oggetto hanno distribuito, può interrogare la vista USER_TAB_PRIVS.
Ad esempio, MAGGIE può vedere quali privilegi JASON ha lasciato sui suoi oggetti:
Lei vede qualcosa del genere:
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE ---------- ----- ----- ------------------ ---------- ---------- JASON MAGGIE VEGETARIAN_RECIPES MAGGIE SELECT >