Ich arbeite an der Anwendung, die auf Oracle funktioniert. Für irgendeine Art von Logik muss ich die Liste der Tabellen vom angegebenen Datenbankbenutzer mit dem angegebenen Schema abrufen. In meinem Fall habe ich einen Benutzer, der Zugriff auf das angegebene Schema gewährt hat. Wenn also mein Code unter Verwendung der angegebenen Anmeldeinformationen eine Verbindung herstellt und versucht, die Tabellen aus der folgenden Abfrage abzurufen, wird die Tabelle der Rückgabetabelle angezeigt.Welche Berechtigung muss gewährt werden, um auf sys.dba_systems zuzugreifen
SELECT * FROM dba_objects where owner ='schema' and object_type = 'TABLE'
Die obige Abfrage wurde die Arbeit mit Benutzer Erteilung alle Privilegien haben, aber wenn ich mit begrenzten Erlaubnis habe versucht, es wirft Fehler msg.
ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
Für den sekundären Benutzer, von dem unsere Code-Verbindung zu schaffen hat Abfrage
create user johnsmith identified by Passw0rd;;
grant connect to johnsmith ;
grant select any table to johnsmith ;
grant UPDATE any table to johnsmith ;
grant DELETE any table to johnsmith ;
grant INSERT any table to johnsmith ;
durch folgende Berechtigungen erteilt
Welche Erlaubnis möchte ich Benutzer gewähren Zugriff auf die folgenden Systemtabellen zu haben .. .?
- DBA_OBJECTS
- USER_CONSTRAINTS
- user_cons_columns
- USER_TABLES
- all_tab_cols und erlauben auch dbms_metadata.get_dependent_ddl() Methode