Aufgabe 3: Erstellen eines Schemas - Amazon Redshift

Aufgabe 3: Erstellen eines Schemas

Nach dem Erstellen einer neuen Datenbank können Sie ein neues Schema in der aktuellen Datenbank erstellen. Ein Schema ist ein Namespace, der benannte Datenbankobjekte wie Tabellen, Ansichten und benutzerdefinierte Funktionen (User-Defined Functions, UDFs) enthält. Eine Datenbank kann ein oder mehrere Schemata enthalten, und jedes Schema gehört nur zu einer Datenbank. Zwei Schemata können verschiedene Objekte mit demselben Namen haben.

Sie können mehrere Schemata in derselben Datenbank erstellen, um Daten so zu organisieren, wie Sie möchten, oder um Ihre Daten funktional zu gruppieren. Sie können beispielsweise ein Schema erstellen, um alle Staging-Daten zu speichern, und ein anderes Schema zum Speichern aller Berichtstabellen. Sie können auch verschiedene Schemata erstellen, um Daten zu speichern, die für verschiedene Unternehmensgruppen relevant sind, die sich in derselben Datenbank befinden. Jedes Schema kann verschiedene Datenbankobjekte speichern, wie etwa Tabellen, Ansichten und benutzerdefinierte Funktionen (User-Defined Functions, UDFs). Darüber hinaus können Sie Schemata mit der AUTHORIZATION-Klausel erstellen. Diese Klausel gewährt einem bestimmten angegebenen Benutzer Besitz oder legt ein Kontingent für den maximalen Speicherplatz fest, den das angegebene Schema verwenden kann.

Amazon Redshift erstellt automatisch ein Schema namens public für jede neue Datenbank. Wenn Sie den Schemanamen beim Erstellen von Datenbankobjekten nicht angeben, gehen die Objekte in das public-Schema über.

Um auf ein Objekt in einem Schema zuzugreifen, qualifizieren Sie das Objekt mithilfe der schema_name.table_name-Notation. Der qualifizierte Name des Schemas besteht aus dem Schemanamen und dem Tabellennamen, die durch einen Punkt getrennt sind. Zum Beispiel kann ein sales-Schema eine price-Tabelle und ein inventory-Schema eine price-Tabelle haben. Wenn Sie die price-Tabelle referenzieren, müssen Sie sie als sales.price oder inventory.price qualifizieren.

Im folgenden Beispiel wird ein Schema mit dem Namen SALES für den Benutzer GUEST erstellt.

CREATE SCHEMA SALES AUTHORIZATION GUEST;

Weitere Informationen über Befehlsoptionen finden Sie unter CREATE SCHEMA im Datenbankentwicklerhandbuch zu Amazon Redshift.

Führen Sie den folgenden Befehl aus, um die Liste der Schemata in Ihrer Datenbank anzuzeigen.

select * from pg_namespace;

Die Ausgabe sollte in etwa folgendermaßen aussehen:

nspname | nspowner | nspacl ----------------------+----------+-------------------------- sales | 100 | pg_toast | 1 | pg_internal | 1 | catalog_history | 1 | pg_temp_1 | 1 | pg_catalog | 1 | {rdsdb=UC/rdsdb,=U/rdsdb} public | 1 | {rdsdb=UC/rdsdb,=U/rdsdb} information_schema | 1 | {rdsdb=UC/rdsdb,=U/rdsdb}

Weitere Informationen zum Abfragen von Katalogtabellen finden Sie unter Abfragen der Katalogtabellen im Datenbankentwicklerhandbuch zu Amazon Redshift.

Verwenden Sie die GRANT-Anweisung, um Benutzern Berechtigungen für die Schemata zu erteilen.

Im folgenden Beispiel werden dem Benutzer GUEST Berechtigungen gewährt, um Daten aus allen Tabellen oder Ansichten in SALESCHEMA mit einer SELECT-Anweisung auszuwählen.

GRANT SELECT ON ALL TABLES IN SCHEMA SALES TO GUEST;

Im folgenden Beispiel werden dem Benutzer GUEST alle verfügbaren Rechte auf einmal gewährt.

GRANT ALL ON SCHEMA SALES TO GUEST;