ALTER DATASHARE - 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.

ALTER DATASHARE

Ändert die Definition eines Datashares. Sie können mit ALTER DATASHARE Objekte hinzufügen oder entfernen. Sie können nur ein Datashare in der aktuellen Datenbank ändern. Fügen Sie Objekte aus der zugehörigen Datenbank einem Datashare hinzu oder entfernen Sie sie daraus. Der Besitzer des Datashares mit den erforderlichen Berechtigungen für die hinzuzufügenden oder zu entfernenden Datashare-Objekte kann das Datashare ändern.

Erforderliche Berechtigungen

Für ALTER DATASHARE sind folgende Berechtigungen erforderlich:

  • Superuser.

  • Benutzer mit der Berechtigung ALTER DATASHARE.

  • Benutzer mit der Berechtigung ALTER oder ALL für das Datashare.

  • Um bestimmte Objekte zu einem Datashare hinzuzufügen, müssen diese Benutzer die Berechtigung für die Objekte haben. Für diesen Fall sollten Benutzer auch Besitzer der Objekte sein oder SELECT-, USAGE- oder ALL-Berechtigungen für die Objekte haben.

Syntax

Die folgende Syntax veranschaulicht, wie Objekte zum Datashare hinzugefügt oder von diesem entfernt werden.

ALTER DATASHARE datashare_name { ADD | REMOVE } {
TABLE schema.table [, ...]
| SCHEMA schema [, ...]
| FUNCTION schema.sql_udf (argtype,...) [, ...]
| ALL TABLES IN SCHEMA schema [, ...]
| ALL FUNCTIONS IN SCHEMA schema [, ...] }

Die folgende Syntax veranschaulicht, wie die Eigenschaften eines Datashares konfiguriert werden.

ALTER DATASHARE datashare_name {
[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]
[ SET INCLUDENEW [=] TRUE | FALSE FOR SCHEMA schema ] }

Parameter

datashare_name

Der Name der zu ändernden Datashares.

ADD | REMOVE

Eine Klausel, die angibt, ob dem Datashare Objekte hinzugefügt oder daraus entfernt werden sollen.

TABLE schema.table [, ...]

Der Name der Tabelle oder Ansicht im angegebenen Schema, die dem Datashare hinzugefügt werden soll.

SCHEMA schema [, ...]

Der Name des Schemas, das dem Datashare hinzugefügt werden soll.

FUNCTION schema.sql_udf (argtype,...) [, ...]

Der Name der benutzerdefinierten SQL-Funktion mit Argumenttypen, die dem Datashare hinzugefügt werden soll.

ALL TABLES IN SCHEMA schema [, ...]

Eine Klausel, die angibt, ob alle Tabellen und Ansichten im angegebenen Schema zum Datashare hinzugefügt werden sollen.

ALL FUNCTIONS IN SCHEMA schema [, ...] }

Eine Klausel, die das Hinzufügen aller Funktionen im angegebenen Schema zum Datashare festlegt.

[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]

Eine Klausel, die angibt, ob ein Datashare für öffentlich zugängliche Cluster freigegeben werden kann.

[ SET INCLUDENEW [=] TRUE | FALSE FOR SCHEMA schema ]

Eine Klausel, die angibt, ob zukünftige Tabellen, Ansichten oder benutzerdefinierte SQL-Funktionen (UDFs), die in dem angegebenen Schema erstellt wurden, dem Datashare hinzugefügt werden sollen. Aktuelle Tabellen, Ansichten oder SQL UDFs im angegebenen Schema werden dem Datashare nicht hinzugefügt. Nur Superuser können diese Eigenschaft für jedes Datashare-Schema-Paar ändern. Standardmäßig lautet die INCLUDENEW-Klausel „false“.

Nutzungshinweise für ALTER DATASHARE

  • Die folgenden Benutzer können ein Datashare ändern:

    • Ein Superuser

    • Der Besitzer des Datashares

    • Benutzer mit ALTER- oder ALL-Privilegien für das Datashare

  • Um bestimmte Objekte zu einem Datashare hinzuzufügen, müssen Benutzer die richtigen Berechtigungen für die Objekte haben. Benutzer sollten auch Besitzer der Objekte sein oder SELECT, USAGE- oder ALL-Berechtigungen für die Objekte haben.

  • Sie können Schemata, Tabellen, reguläre Ansichten, spätbindende Ansichten, materialisierte Ansichten und benutzerdefinierte SQL-Funktionen (UDFs) freigeben. Fügen Sie einem Datashare zuerst ein Schema hinzu, bevor Sie Objekte im Schema hinzufügen.

    Wenn Sie ein Schema hinzufügen, fügt Amazon Redshift nicht alle untergeordneten Objekte hinzu. Sie müssen sie explizit hinzufügen.

  • Wir empfehlen, dass Sie AWS Data Exchange Datashares mit aktivierter Einstellung für öffentlich zugänglich erstellen.

  • Im Allgemeinen empfehlen wir, eine AWS Data Exchange Datenfreigabe nicht mit der ALTER DATASHARE-Anweisung zu ändern, um den öffentlichen Zugriff zu deaktivieren. Wenn Sie dies tun, verlieren die Benutzer, AWS-Konten die Zugriff auf die Datenfreigabe haben, den Zugriff, wenn ihre Cluster öffentlich zugänglich sind. Diese Art der Änderung kann außerdem zu einer Verletzung der Datenproduktbedingungen in AWS Data Exchange führen. Eine Ausnahme dieser Empfehlung wird im Folgenden erklärt.

    Das folgende Beispiel zeigt einen Fehler, wenn ein AWS Data Exchange Datashare mit deaktivierter Einstellung erstellt wird.

    ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE; ERROR: Alter of ADX-managed datashare salesshare requires session variable datashare_break_glass_session_var to be set to value 'c670ba4db22f4b'

    Damit das Ändern einer AWS Data Exchange Datenfreigabe zur Deaktivierung der öffentlich zugänglichen Einstellung möglich ist, legen Sie die folgende Variable fest und führen Sie die ALTER DATASHARE-Anweisung erneut aus.

    SET datashare_break_glass_session_var to 'c670ba4db22f4b';
    ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE;

    In diesem Fall generiert Amazon Redshift einen zufälligen Einmalwert zur Festlegung der Sitzungsvariable, um ALTER DATASHARE SET PUBLICACCESSIBLE FALSE für ein AWS Data Exchange -Datashare zu erlauben.

Beispiele

Im folgenden Beispiel wird das Schema zum Datashare hinzugefügt. public salesshare

ALTER DATASHARE salesshare ADD SCHEMA public;

Im folgenden Beispiel wird die Tabelle public.tickit_sales_redshift zum Datashare salesshare hinzugefügt.

ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift;

Im folgenden Beispiel werden alle Tabellen zum Datashare salesshare hinzugefügt.

ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;

Im folgenden Beispiel wird die Tabelle public.tickit_sales_redshift vom Datashare salesshare entfernt.

ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;