Oracle
 sql >> Database >  >> RDS >> Oracle

raccogliere le informazioni dba_users nel database Oracle quando connesso come utente

Le viste DBA_* in Oracle contengono informazioni su TUTTI gli oggetti nel database indipendentemente dalla proprietà. Solo gli account amministrativi hanno accesso a queste viste per impostazione predefinita. Questo viene fatto per motivi di sicurezza. Affinché un utente "normale" ottenga l'accesso a queste viste, gli deve essere concesso l'accesso, direttamente in base alle viste o globalmente tramite privilegi di sistema come SELECT ANY TABLE (non consigliato). È meglio concedere l'accesso alla visualizzazione DBA_ effettiva di cui l'utente ha davvero bisogno. In genere, le viste ALL_ forniranno a un utente tipico tutte le informazioni di cui ha bisogno.

Per uscire dalla sessione utente corrente e connetterti come un altro utente, usa il comando CONNECT:

CONNECT sys/pw as sysdba

MODIFICA:

Il proprietario di un oggetto può concedere l'accesso a qualsiasi suo oggetto a un altro utente o ruolo tramite Comando GRANT:

GRANT SELECT ON dba_users TO nonsys;

Eseguito come utente SYS, questo concederebbe l'accesso selezionato alla vista dba_users all'utente nonsys.

Una volta eseguita la concessione, l'utente nonsys sarà in grado di selezionare da questa vista tramite l'istruzione SELECT:

SELECT * FROM dba_users;