Creare un utente su Oracle DB ed assegnare i permessi di accesso agli oggetti di un altro utente

Di seguito uno script contenente una serie di comandi che permettono di creare un utente su un DB Oracle (provato su 12c, ma funzionante in tutte le versioni precedenti… almeno sino alla 9 posso garantire 😀 ) e concedere l’accesso a tutti gli oggetti (in sola lettura) di un altro utente:
Innanzitutto bisogna loggarsi come SYSDBA, poi basta modificare lo script e lanciare l’SQL.

–creazione di un utente standard, con password impostata, e tablespace utente e temporaneo di default

CREATE USER UTENTE_NUOVO IDENTIFIED BY passwordnuova
DEFAULT TABLESPACE “USERS”
TEMPORARY TABLESPACE “TEMP”;

–concediamo all’utente i permessi per connettersi al DB ed accedere agli oggetti
GRANT “RESOURCE” TO UTENTE_NUOVO ;
GRANT “CONNECT” TO UTENTE_NUOVO ;

–scriviamo un blocco anonimo PL/SQL che legge tutti gli oggetti di proprietĂ  di un certo utente e assegna la lettura (ma è possibile modificare lo script per permettere inserimenti, aggiornamenti e cancellazioni) a ciascun oggetto:
BEGIN
FOR x IN (SELECT * FROM dba_tables WHERE owner=’ALTRO_UTENTE’)
LOOP
EXECUTE IMMEDIATE ‘GRANT SELECT ON ALTRO_UTENTE.’ || x.table_name ||
‘ TO UTENTE_NUOVO’;
END LOOP;
END;

Lascia un commento

Il tuo indirizzo email non sarĂ  pubblicato. I campi obbligatori sono contrassegnati *

Time limit is exhausted. Please reload CAPTCHA.