Duplica un utente del database Oracle


17

Avremo auditor esterni in arrivo per eseguire una revisione sul nostro database Oracle. Eseguiranno uno strumento per eseguire la revisione e per questo richiedono un ID utente in grado di connettersi al database e ottenere informazioni da esso.

Per questo abbiamo un utente esistente nel database. Tuttavia, è un ID di produzione e non possiamo permetterci di bloccarlo. Vorremmo clonare / duplicare questo ID inclusi i suoi ruoli e diritti.

C'è un modo per farlo in Oracle?

Risposte:


21

Creazione dell'utente:

select dbms_metadata.get_ddl( 'USER', 'PHIL' ) from dual;

Ruolo predefinito:

select dbms_metadata.get_granted_ddl( 'DEFAULT_ROLE', 'PHIL' ) from dual;

Sovvenzioni di sistema:

select dbms_metadata.get_granted_ddl( 'SYSTEM_GRANT', 'PHIL' ) from  dual;

Sovvenzioni oggetto:

select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', 'PHIL' ) from dual;

Sovvenzioni al ruolo:

select dbms_metadata.get_granted_ddl( 'ROLE_GRANT', 'PHIL' ) from dual;

quote:

select dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', 'PHIL' ) from dual;

Se uno dei precedenti non ha output, otterrai un'eccezione simile a questa:

SQL> select dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', 'PHIL' ) from dual;
ERROR:
ORA-31608: specified object of type TABLESPACE_QUOTA not found
ORA-06512: at "SYS.DBMS_METADATA", line 4018
ORA-06512: at "SYS.DBMS_METADATA", line 5991
ORA-06512: at line 1

no rows selected

SQL>

Quindi eseguire una ricerca e sostituire l'output per modificare il nome utente.


Si noti che la generazione DDL racchiude l'utente esistente tra virgolette doppie; questo rende molto semplice la sostituzione del nome utente esistente.
Andrew Wolfe,

1
ROLE_GRANT deve precedere l'istruzione DEFAULT_ROLE durante la creazione del nuovo utente per avere esito positivo.
Theofilos

@Theofilos grazie, a cura
Betlista
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.