So erhalten Sie den verfügbaren Platz im Tabellenbereich für einen Benutzer (Oracle)

StackOverflow https://stackoverflow.com/questions/5994324

  •  13-11-2019
  •  | 
  •  

Frage

Ich arbeite an einer Webanwendung, in der ich den Benutzer warnen muss, den sie im Tabellenbereich des DB-Benutzers aus dem Raum ausgehen müssen. Die Anwendung kennt die Anmeldeinformationen des Systembenutzers von DB nicht, daher kann ich Ansichten wie dba_users nicht abfragen, dba_free_space..etc.

Meine Frage ist, gibt es in Oracle einen Weg in Oracle, um herauszufinden, wie viel Platz in ihrem Tabellenbereich gelassen wird?

danke!

War es hilfreich?

Lösung

Vergeben Sie meine Ignoranz zu diesem Thema, denn ich glaubte, nur Ansichten, die auf dem Datenspeicher verfügbar sind, waren dba_free_space usw.

Ich habe erkannt, dass es für den protokollierten Benutzer user_free_space gibt. Ansichten für sie. Modifizierte Version der Abfrage genannt Hier wäre die Antwort meine Frage.

Query ist wie folgt: (den Speicherplatz auf dem Standard-Default_Tablespace des protokollierten Benutzers) generasacodicetagpre.

Es würde den freien Speicherplatz in MB zurückgeben

Andere Tipps

Erstellen Sie ein gespeichertes Paket als Benutzer mit den erforderlichen Berechtigungen.Möglicherweise müssen Sie einen neuen Benutzer erstellen.Erteilen Sie den Paket auf dem Paket an einen beliebigen Benutzer, der es benötigt.Die Pakete müssen alle Prozeduren und Funktionen haben, die zum Zugriff auf die DBA-Ansichten erforderlich sind, jedoch sorgfältig codiert werden sollten, um den Zugriff auf "zu viel" Informationen zu vermeiden.Möglicherweise möchten Sie ein zweites Paket auf dem Konto eines nicht privilegierten Benutzers schreiben, um die Logik einzukapseln.

Dies ist potenziell sehr komplex, da es für den Benutzer durchaus möglich ist:

    .
  1. Erhalten Sie einen "Out of Space" -Fehler, auch wenn die Tabellenspaces, in der sie Privilegien aufweisen, einschließlich des Standardtabletts, viel Platz haben.Dies kann passieren, wenn sie in eine Tabelle einfügen, in der sich ein anderer Benutzer befindet, der sich auf einem Tabellenbereich befindet, der Ihr Benutzer keine Quote aufweist.In diesem Fall hat Ihr Benutzer wahrscheinlich keinen Zugriff auf die Ansichten, die erforderlich sind, um festzustellen, ob freier Speicherplatz vorhanden ist oder nicht,
  2. in der Lage sein, Daten weiterzumachen, obwohl es keinen freien Speicherplatz auf den Tablespaces gibt, auf denen sie eine Quote haben - sie haben möglicherweise nicht einmal ein Quoten für ihre Standard-Tablespaces.

    Wenn Sie also nicht einen ziemlich einfachen Fall haben, müssen Sie sich wirklich sehr bewusst sein, wie der Benutzer auf einem weit tieferen Niveau mit der Datenbank interagiert, und schauen Sie sich einen freien Speicherplatz von einem datenbank-ganzheitlichen Standpunkt an. .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top