So listen Sie alle Tabellen in einer Oracle-Datenbank auf

Oracle speichert die Metadaten von Tabellen in Data-Dictionary-Ansichten. In diesem Artikel werden fünf Methoden zum Auflisten von Tabellen auf verschiedenen Berechtigungsstufen vorgestellt. Die Leser lernen grundlegende und fortgeschrittene Abfragen für DBA-, Besitzer- und zugängliche Tabellen kennen.

download-icon
Kostenloser Download
für VM, Betriebssystem, DB, Datei, NAS usw.
maximilian

Updated by Maximilian on 2026/02/10

Inhaltsverzeichnis
  • Was sind Oracle-Datenwörterbücher?

  • Wie listet man alle Tabellen in der gesamten Oracle-Datenbank auf?

  • Wie listet man die Oracle-Tabellen auf, die Ihnen gehören?

  • Wie zeigt man alle Tabellen an, die dem aktuellen Benutzer gehören?

  • So zeigen Sie alle Tabellen an, auf die der aktuelle Benutzer Zugriff hat

  • Sichern Sie Oracle-Datenbanken mit Vinchin

  • Alle Tabellen in einer Oracle-Datenbank auflisten – Häufig gestellte Fragen

  • Zusammenfassung

Durch die Auflistung von Tabellen können Sie die Datenbank strukturieren und Probleme erkennen. Dies unterstützt Audits, Migrationen und die Leistungsoptimierung. In dieser Anleitung werden Methoden für verschiedene Berechtigungsstufen beschrieben.

Was sind Oracle-Datenwörterbücher?

Das Datenwörterbuch enthält Metadaten zu den Objekten der Datenbank. Basistabellen befinden sich im SYS-Schema. Ansichten und öffentliche Synonyme befinden sich häufig im SYSTEM-Schema oder verweisen zurück auf SYS. Diese Ansichten stellen Objektdetails auf kontrollierte Weise zur Verfügung. Sie verfolgen Tabellen, Spalten, Indizes, Benutzer und Berechtigungen. Oracle aktualisiert sie automatisch, wenn Sie Objekte erstellen, ändern oder löschen.

Diese Ansichten umfassen DBA_TABLES, ALL_TABLES und USER_TABLES. Jede davon deckt einen anderen Geltungsbereich ab. DBA_TABLES zeigt alle Tabellen in allen Schemas an. ALL_TABLES zeigt Tabellen an, die Ihnen gehören oder auf die Sie zugreifen können. USER_TABLES zeigt Tabellen an, die dem Benutzer Ihrer aktuellen Sitzung gehören. Sie fragen diese Ansichten ab, um Schemas zu überprüfen, Strukturen zu validieren oder den Zugriff zu überwachen.

Groß-/Kleinschreibung: Oracle speichert nicht in Anführungszeichen gesetzte Bezeichner standardmäßig in Großbuchstaben. Wenn Sie ein Objekt ohne Anführungszeichen erstellen, wird sein Name in Großbuchstaben umgewandelt. Bei Abfragen von Datenwörterbuchansichten verwenden Sie Filter in Großbuchstaben, z. B. WHERE owner = 'HR'. In Anführungszeichen gesetzte Bezeichner behalten ihre Groß-/Kleinschreibung bei, werden jedoch in der Praxis selten verwendet. Beachten Sie dies, um leere Ergebnisse oder Fehler zu vermeiden.

Wie listet man alle Tabellen in der gesamten Oracle-Datenbank auf?

Um alle Tabellen in der Datenbank aufzulisten, sind spezielle Berechtigungen erforderlich. Für eine vollständige Übersicht fragen Sie die Sicht DBA_TABLES ab. Diese Sicht zeigt für jede Tabelle den Besitzer und den Namen an. Verwenden Sie sie für Audits oder Analysen über mehrere Schemata hinweg. Um darauf zuzugreifen, benötigen Sie entweder die Systemberechtigung SELECT ANY DICTIONARY oder die Rolle SELECT_CATALOG_ROLE. Eine direkte Mitgliedschaft in der DBA-Rolle funktioniert ebenfalls, gewährt jedoch umfangreichere Zugriffsrechte, als tatsächlich erforderlich sind. Aus Sicherheitsgründen sollten stets die geringstmöglichen Berechtigungen vergeben werden.

Ein Beispiel für eine Abfrage:

SELECT owner, table_nameFROM dba_tablesORDER BY owner, table_name;

Damit werden Besitzer und Tabellenname sortiert zurückgegeben. Wenn Sie dies ohne die erforderlichen Berechtigungen ausführen, erhalten Sie den Fehler ORA-00942: „Tabelle oder Sicht existiert nicht“. Um das Problem zu beheben, bitten Sie den Datenbankadministrator (DBA), die Rolle SELECT_CATALOG_ROLE oder gezielt die Berechtigung SELECT ANY DICTIONARY zu gewähren. Erstere umfasst den Zugriff auf Dictionary-Sichten; letztere ermöglicht das Lesen der Basis-Dictionary-Tabellen, die im Besitz von SYS sind.

Für große Datenbanken kann das Ergebnis sehr umfangreich sein. Sie können nach Besitzer oder Tabellennamensmustern filtern. Beispiel:

SELECT owner, table_nameFROM dba_tablesWHERE owner = 'ACCT'ORDER BY table_name;

Dies beschränkt die Ausgabe auf das Schema ACCT. Verwenden Sie für den Besitzer stets Großbuchstaben. Sie können auch mit anderen Datenbank-Dictionary-Ansichten verknüpfen, um Zeilenzahlen oder Kommentare abzurufen; dies kann jedoch die Leistung beeinträchtigen. Für eine einfache Auflistung genügt die einfache Abfrage.

Wenn Sie Tabellen für eine Prüfung auflisten, sollten Sie auch den Tabellenstatus oder die Partitionsinformationen überprüfen. Beispielsweise können Sie DBA_TABLES mit DBA_TAB_PARTITIONS verknüpfen, um partitionierte Tabellen anzuzeigen. Dies vertieft die Analyse, erfordert jedoch zusätzliche Abfragen. Verwenden Sie solche Verknüpfungen nur bei Bedarf.

Wie listet man die Oracle-Tabellen auf, die Ihnen gehören?

Sie müssen Ihre Schemaobjekte häufig überprüfen. Um die Tabellen aufzulisten, die Ihnen gehören, verwenden Sie USER_TABLES oder ALL_TABLES mit Filterung nach Ihrem Schema. USER_TABLES zeigt alle Tabellen im Standard-Schema des aktuellen Sitzungsbenutzers an. Die Spalte „Besitzer“ wird ausgeblendet, da sie implizit Ihren Benutzer bezeichnet. Für diese Ansicht sind keine zusätzlichen Berechtigungen erforderlich – lediglich die normale SELECT-Berechtigung für Datenwörterbuchansichten.

Eine grundlegende Abfrage:

SELECT table_nameFROM user_tablesORDER BY table_name;

Damit werden Ihre Tabellen nach Namen sortiert zurückgegeben. Der Eigentümer wird nicht angezeigt, da es stets Ihr Benutzerkonto ist. Die Abfrage funktioniert in SQL*Plus, SQL Developer oder jedem anderen Client, nachdem Sie sich mit Ihren Schema-Anmeldedaten verbunden haben. Sie hilft dabei, kürzlich erstellte Objekte zu überprüfen oder nicht mehr benötigte Tabellen zu bereinigen.

Alternativ können Sie ALL_TABLES filtern:

SELECT owner, table_nameFROM all_tablesWHERE owner = USERORDER BY table_name;

Hierbei ist USER eine integrierte Funktion, die Ihren Sitzungsbenutzernamen in Großbuchstaben zurückgibt. Dadurch wird dieselbe Liste erzeugt, allerdings mit der zusätzlichen Spalte „Besitzer“. Dies kann nützlich sein, wenn Sie Auflistungen für mehrere Anmeldungen automatisieren oder den Besitzer in Ausgabeprotokollen angeben möchten. Zudem wird Verwirrung vermieden, falls Skripte unter Proxy-Benutzern oder -Rollen ausgeführt werden.

Wenn Sie mehrere Schemas mit einem einzigen Login verwalten, können Sie Ihr Standardschema festlegen und trotzdem USER_TABLES verwenden. Wenn Sie jedoch Tabellen in einem anderen Schema auflisten müssen, das Ihnen gehört oder das Sie über Rollen verwalten, verwenden Sie ALL_TABLES mit dem Besitzerfilter. Verwenden Sie für Schemanamen immer Großbuchstaben.

Wie zeigt man alle Tabellen an, die dem aktuellen Benutzer gehören?

Die Anzeige der Tabellen, die dem aktuellen Sitzungsbenutzer gehören, erleichtert alltägliche Aufgaben. Verwenden Sie USER_TABLES für mehr Klarheit. Diese Ansicht listet ausschließlich Tabellen auf, die Ihnen gehören. Eine Spalte „Besitzer“ wird nicht angezeigt, da dies implizit ist. Dies ist die einfachste Methode und erfordert weder zusätzliche Filter noch besondere Berechtigungen.

Beispiel:

SELECT table_nameFROM user_tablesORDER BY table_name;

Führen Sie diesen Befehl aus, nachdem Sie sich als das Ziel-Schema verbunden haben. Er listet alle Tabellen auf, die Sie erstellt oder besitzen. Falls unerwartete Tabellen angezeigt werden, können Sie diese löschen oder archivieren. Wenn ein Tabellenname in Kleinbuchstaben oder mit gemischter Groß-/Kleinschreibung erscheint, wurde er wahrscheinlich in Anführungszeichen erstellt; gehen Sie daher bei Skripten mit solchen Namen vorsichtig vor.

Sie können auch zusätzliche Spalten in USER_TABLES überprüfen, beispielsweise den Tabellennamensraum oder geschachtelte Spalten, indem Sie weitere Felder auswählen:

SELECT table_name, tablespace_name, pct_freeFROM user_tablesORDER BY table_name;

Dies zeigt die Speichereinstellungen an. Verwenden Sie diese Funktion bei der Planung von Wartungsarbeiten oder einer Neustrukturierung des Speichers. Halten Sie Sätze kurz und verständlich. Vermeiden Sie Fachjargon und integrieren Sie Erklärungen nahtlos in den Text.

So zeigen Sie alle Tabellen an, auf die der aktuelle Benutzer Zugriff hat

Zu den zugänglichen Tabellen zählen sowohl diejenigen, die Ihnen gehören, als auch diejenigen, denen Ihnen Zugriffsrechte erteilt wurden. Die Ansicht ALL_TABLES listet diese Tabellen auf. Sie zeigt Tabellen an, für die Sie über mindestens eine Berechtigung verfügen – beispielsweise SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER oder INDEX – sowie Tabellen, die Ihnen gehören. Diese Ansicht erfordert keine DBA-Rollen.

Grundlegende Abfrage:

SELECT owner, table_nameFROM all_tablesORDER BY owner, table_name;

Damit werden der Eigentümer und die Tabellennamen zurückgegeben, auf die Sie zugreifen können. Verwenden Sie dies, um gemeinsam genutzte Tabellen oder Schemas von Drittanbietern zu ermitteln, auf die Sie Zugriff haben. Dies hilft bei der Fehlerbehebung bei fehlendem Zugriff: Wenn eine Tabelle nicht angezeigt wird, fehlen Ihnen die entsprechenden Berechtigungen.

Um nach einem bestimmten Schema zu filtern:

sqlCopyEditSELECT table_nameFROM all_tablesWHERE owner = 'HR'ORDER BY table_name;

Ersetzen Sie „HR“ durch den Namen des Schemas in Großbuchstaben. Ist das Ergebnis leer, besitzen Sie keine Berechtigungen für die Tabellen dieses Schemas. Ist es nicht leer, können Sie erkennen, auf welche Tabellen Sie zugreifen dürfen.

Zur schnellen Zugriffsprüfung zählen Sie die zugänglichen Tabellen:

SELECT COUNT(*) AS cntFROM all_tablesWHERE owner = 'TARGET_SCHEMA';

Eine Zahl größer als null bedeutet, dass mindestens ein Privileg für eine Tabelle in diesem Schema existiert. Um die Privilegien aufzulisten, entfernen Sie COUNT und fügen ORDER BY hinzu. Dieser Ansatz beschleunigt Überprüfungen in Skripten oder Überwachungstools.

Sie können Berechtigungen auch detaillierter über DBA_TAB_PRIVS untersuchen, sofern Sie entsprechende Rechte besitzen – beispielsweise um zu ermitteln, welche Berechtigungen Sie für jede einzelne Tabelle haben. Für die meisten Administratoren reicht jedoch ALL_TABLES aus, um den Zugriff zu bestätigen.

Sichern Sie Oracle-Datenbanken mit Vinchin

Als Nächstes betrachten wir die Sicherung von Oracle. Sie wissen, dass die Auflistung von Tabellen bei der Planung von Sicherungen hilfreich ist. Was tun, wenn Sie eine zuverlässige Sicherungslösung benötigen?

Vinchin Backup & Recovery ist eine professionelle, unternehmensstufe Backup-Lösung für Datenbanken, die Oracle, MySQL, SQL Server, MariaDB, PostgreSQL und PostgresPro unterstützt. Sie umfasst zudem zahlreiche weitere Plattformen, um unterschiedliche IT-Anforderungen zu erfüllen. Vinchin bietet viele Funktionen – hier sind die wichtigsten Highlights:

  • Es bietet Cloud-Backup und Bandarchivierung, um Anforderungen an externe Standorte und gesetzliche Vorschriften zu erfüllen. Es verarbeitet große Datenmengen effizient.

  • Es unterstützt vollständige und inkrementelle Sicherungen; bei Oracle bietet es zudem die Sicherung archivierter Protokolle. So stellen Sie sicher, dass alle Änderungen seit der letzten vollständigen Sicherung erfasst werden.

  • Es bietet geplante Sicherungen mit Datenkomprimierung und Deduplizierung. Dadurch wird der Speicherplatzbedarf reduziert und die Sicherungszeiten verkürzt.

  • Zu den Wiederherstellungsoptionen gehören die Wiederherstellung auf einem neuen Server und die Zeitpunktwiederherstellung für unterstützte Datenbanken. Bei Oracle können Sie spezielle Funktionen wie das Überspringen von Offline-Dateien nutzen.

  • Es umfasst Ransomware-Schutz durch unveränderliche Speicherung und Überprüfung und schützt Backups vor Angriffen.

Die Vinchin-Webkonsole ist einfach und intuitiv. Die Sicherung von Oracle umfasst vier Schritte:

1. Wählen Sie die Oracle-Datenbank aus, die gesichert werden soll

Wählen Sie die Oracle-Datenbank für die Sicherung aus

2. Wählen Sie den Sicherungsspeicherort aus

Wählen Sie den Sicherungsspeicherort

3. Die Sicherungsstrategie konfigurieren

Sicherungsstrategie konfigurieren

4. Die Aufgabe einreichen

Auftrag einreichen

Jeder Schritt ist klar gekennzeichnet. So wird Ihnen der gesamte Prozess ohne unnötigen Aufwand Schritt für Schritt erklärt. Die weltweite Kundenzahl und die hohen Bewertungen von Vinchin spiegeln dessen Vertrauenswürdigkeit wider. Klicken Sie auf die Download-Schaltfläche, um die 60-tägige kostenlose Testversion mit vollem Funktionsumfang auszuprobieren.

Alle Tabellen in einer Oracle-Datenbank auflisten – Häufig gestellte Fragen

F1: Wie liste ich Tabellen in einem entfernten Oracle-Schema auf, das mir gehört?
Stellen Sie eine Verbindung mit den Zugangsdaten dieses Schemas her und führen Sie dann folgenden Befehl aus: SELECT table_name FROM user_tables ORDER BY table_name.

F2: Wie kann ich prüfen, ob mein Benutzer auf Tabellen in einem bestimmten Ziel-Schema zugreifen kann?
Melden Sie sich als der betreffende Benutzer an → führen Sie SELECT COUNT(*) FROM all_tables WHERE owner = 'TARGET_SCHEMA' aus → falls die Anzahl > 0 ist, führen Sie SELECT table_name FROM all_tables WHERE owner = 'TARGET_SCHEMA' ORDER BY table_name aus.

F3: Ich erhalte den Fehler ORA-00942 beim Abfragen von DBA_TABLES. Was ist der nächste Schritt?
Fordern Sie vom Datenbankadministrator die Berechtigung SELECT_CATALOG_ROLE oder SELECT ANY DICTIONARY an; führen Sie dann SELECT owner, table_name FROM dba_tables ORDER BY owner, table_name aus.

Zusammenfassung

Das Auflisten von Tabellen in Oracle hilft Administratoren bei der Verwaltung von Schemas, der Überprüfung des Zugriffs und der Planung von Wartungsmaßnahmen. Verwenden Sie USER_TABLES für eigene Tabellen, ALL_TABLES für zugängliche Tabellen und DBA_TABLES mit Rollen mit möglichst geringen Berechtigungen für vollständige Datenbankauflistungen. Beachten Sie die Groß-/Kleinschreibung: Oracle verwendet für nicht zitierte Bezeichner Großbuchstaben. Verwenden Sie die integrierte Funktion USER für Filter. Diese Methoden unterstützen Migrationen, Audits und Fehlerbehebungen. 

Vinchin bietet eine zuverlässige Möglichkeit, Oracle-Sicherungen durch Funktionen wie Archivlog-Sicherung, Komprimierung, Deduplizierung und Wiederherstellung zu einem bestimmten Zeitpunkt durchzuführen. Probieren Sie die 60-tägige Testversion von Vinchin für eine einfache Bereitstellung aus.

Teilen auf:

Categories: Database Tips