Schemata - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schemata

Eine Datenbank enthält einen oder mehrere benannte Schemata. Jedes Schema in einer Datenbank enthält Tabellen und andere Arten von benannten Objekten. Standardmäßig haben alle Datenbanken ein einziges Schema, mit dem Namen PUBLIC. Sie können Schemata verwenden, um Datenbankobjekte unter einem gemeinsamen Namen zusammenzufassen. Schemata sind mit Verzeichnissen eines Dateisystems vergleichbar, sie ermöglichen jedoch keine Verschachtelung.

Wenn Sie in einer Datenbank mehrere Schemata haben, können in den verschiedenen Schemas ansonsten identische Datenbankenobjekte mit demselben Namen verwendet werden, ohne dass dies zu einem Namenskonflikt führt. Es können beispielsweise das Schema MY_SCHEMA und das Schema YOUR_SCHEMA beide eine Tabelle mit dem Namen MYTABLE enthalten. Wenn Benutzer über geeignete Berechtigungen verfügen, können sie auf Objekte in verschiedenen Schemas in der Datenbank zugreifen.

Standardmäßig werden neu erstellte Objekte in dem ersten Schema im Suchpfad der Datenbank erstellt. Weitere Informationen finden Sie unter Suchpfad weiter oben in diesem Abschnitt.

Schemata können wie folgt dazu beitragen, in einer Mehrfachbenutzerumgebung Probleme in Zusammenhang mit der Strukturierung und der Ausführung paralleler Anweisungen zu vermeiden:

  • Schemata ermöglichen eine Zusammenarbeit von Entwicklern an derselben Datenbank, ohne dass Namenskonflikte auftreten.

  • Sie ermöglichen die Zusammenfassung von Datenbankobjekten zu logischen Einheiten, die besser verwaltet werden können.

  • Sie ermöglichen es Anwendungen, ihre Objekte in separaten Schemata abzulegen, ohne dass deren Namen zu einem Konflikt mit Objekten von anderen Anwendungen führen.

Erstellen, Modifizieren und Löschen von Schemata

Alle Benutzer können Schemata erstellen und eigene Schemata ändern und löschen.

Sie können folgende Aktionen ausführen:

  • Verwenden Sie den Befehl CREATE SCHEMA, um ein neues Schema zu erstellen.

  • Mit dem Befehl ALTER SCHEMA können Sie den Besitzer eines Schemas ändern.

  • Um ein Schema und alle enthaltenen Objekte zu löschen, führen Sie den Befehl DROP SCHEMA aus.

  • Um eine Tabelle in einem Schema zu erstellen, verwenden Sie bei der Erstellung der Tabelle die Syntax schema_name.tabellen_name.

Führen Sie eine Abfrage wie folgt über der Katalogtabelle PG_NAMESPACE aus, um eine Liste aller Schemata anzuzeigen:

select * from pg_namespace;

Führen Sie eine Abfrage über der Katalogtabelle PG_TABLE_DEF aus, um eine Liste aller Tabellen in einem Schema anzuzeigen. Beispiel: Die folgende Abfrage gibt eine Liste der Tabellen im Schema PG_CATALOG zurück.

select distinct(tablename) from pg_table_def where schemaname = 'pg_catalog';

Suchpfad

Der Suchpfad wird im Parameter „search_path“ als kommagetrennte Liste von Schemanamen definiert. Über den Suchpfad wird festgelegt, in welcher Reihenfolge die Schemas durchsucht werden, wenn ein Objekt, beispielsweise eine Tabelle oder eine Funktion, mit dem einfachen Namen (also ohne Kennzeichnung des Schemas) referenziert wird.

Wenn ein Objekt ohne Angabe eines Zielschemas erstellt wird, wird das Objekt in dem ersten Schema in dem Suchpfad angelegt. Wenn in verschiedenen Schemata Objekte mit demselben Namen vorhanden sind, werden Objektaufrufe ohne Schemaangabe als Verweis auf das erste Schema in dem Suchpfad interpretiert, das ein Objekt mit dem angegebenen Namen enthält.

Um das Standardschema für die aktuelle Sitzung zu ändern, führen Sie den Befehl SET aus.

Weitere Informationen finden Sie in der search_path-Beschreibung in der Konfigurationsreferenz.

Schemabasierte Berechtigungen

Schemabasierte Berechtigungen werden vom Besitzer des Schemas festgelegt:

  • Standardmäßig besitzen alle Benutzer CREATE- und USAGE-Berechtigungen für das Schema PUBLIC einer Datenbank. Um Benutzer daran zu hindern, Objekte im Schema PUBLIC einer Datenbank zu erstellen, verwenden Sie den Befehl REVOKE, um diese Berechtigung zu entfernen.

  • Benutzer können auf Objekte in Schemas, die sie nicht besitzen, nur dann zugreifen, wenn der Besitzer des jeweiligen Objekts ihnen die USAGE-Berechtigung erteilt hat.

  • Wenn Benutzern die CREATE-Berechtigung für ein Schema erteilt wird, das von einem anderen Benutzer erstellt wurde, sind diese Benutzer berechtigt, Objekte in diesem Schema zu erstellen.