Duplizieren Sie einen Oracle-Datenbankbenutzer

17

Wir lassen externe Prüfer vorbeikommen, um eine Überprüfung unserer Oracle-Datenbank durchzuführen. Sie werden ein Tool ausführen, um die Überprüfung durchzuführen, und dafür benötigen sie eine Benutzer-ID, die eine Verbindung zur Datenbank herstellen und Informationen daraus abrufen kann.

In der Datenbank ist hierfür ein Benutzer vorhanden. Es ist jedoch eine Produktions-ID und wir können es uns nicht leisten, sie aussperren zu lassen. Wir möchten diese ID einschließlich ihrer Rollen und Rechte klonen / duplizieren.

Gibt es eine Möglichkeit, dies in Oracle zu tun?

Gommel
quelle

Antworten:

21

Benutzererstellung:

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

Standardrolle:

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

Systemzuschüsse:

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

Objektbewilligungen:

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

Rollenstipendien:

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

Quoten:

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

Wenn eine der oben genannten Optionen keine Ausgabe hat, wird eine Ausnahme angezeigt, die ungefähr so ​​aussieht:

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>

Führen Sie dann eine Suche durch und ersetzen Sie die Ausgabe, um den Benutzernamen zu ändern.

Philᵀᴹ
quelle
Beachten Sie, dass die DDL-Generierung den vorhandenen Benutzer in doppelte Anführungszeichen einschließt. Dies macht das Ersetzen des vorhandenen Benutzernamens sehr einfach.
Andrew Wolfe
1
Das ROLE_GRANT muss vor der DEFAULT_ROLE-Anweisung stehen, wenn der neue Benutzer erstellt werden soll, um erfolgreich zu sein.
Theofilos
@Theofilos danke, bearbeitet
Betlista