Die DBA_*-Ansichten in Oracle enthalten Informationen zu ALLEN Objekten in der Datenbank, unabhängig vom Besitz. Nur Administratorkonten haben standardmäßig Zugriff auf diese Ansichten. Dies geschieht aus Sicherheitsgründen. Damit ein "normaler" Benutzer Zugriff auf diese Ansichten erhält, muss ihm Zugriff darauf gewährt werden, entweder direkt pro Ansicht oder global durch Systemprivilegien wie SELECT ANY TABLE (nicht empfohlen). Es ist besser, Zugriff auf die tatsächliche DBA_-Ansicht zu gewähren, die der Benutzer wirklich benötigt. Im Allgemeinen geben die ALL_-Ansichten einem typischen Benutzer alle Informationen, die er benötigt.
Um die aktuelle Benutzersitzung zu verlassen und sich als ein anderer Benutzer zu verbinden, verwenden Sie den CONNECT-Befehl:
CONNECT sys/pw as sysdba
BEARBEITEN:
Der Besitzer eines Objekts kann einem anderen Benutzer oder einer anderen Rolle über GRANT-Befehl:
GRANT SELECT ON dba_users TO nonsys;
Als Benutzer SYS ausgeführt, würde dies dem Benutzer nonsys ausgewählten Zugriff auf die Ansicht dba_users gewähren.
Sobald die Gewährung erfolgt ist, kann der Benutzer nonsys aus dieser Ansicht über die SELECT-Anweisung auswählen:
SELECT * FROM dba_users;