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 Objekte hinzufügen oder Objekte entfernen mit ALTERDATASHARE. 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
Folgende Rechte sind erforderlich für ALTERDATASHARE:
Superuser.
Benutzer mit der entsprechenden ALTER DATASHARE Berechtigung.
Benutzer, die das ALL Recht ALTER oder für den Datashare haben.
Um bestimmte Objekte zu einem Datashare hinzuzufügen, müssen diese Benutzer die Berechtigung für die Objekte haben. In diesem Fall sollten Benutzer Eigentümer von Objekten sein oder über SELECT ALL Rechte für die Objekte verfügen. USAGE
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.
- TABLESchema. Tabelle [,...]
-
Der Name der Tabelle oder Ansicht im angegebenen Schema, die dem Datashare hinzugefügt werden soll.
- SCHEMASchema [,...]
-
Der Name des Schemas, das dem Datashare hinzugefügt werden soll.
- FUNCTIONSchema. sql_udf (Argtype,...) [,...]
-
Der Name der benutzerdefinierten SQL Funktion mit Argumenttypen, die dem Datashare hinzugefügt werden sollen.
- ALLTABLESIM SCHEMA Schema [,...]
-
Eine Klausel, die angibt, ob alle Tabellen und Ansichten im angegebenen Schema zum Datashare hinzugefügt werden sollen.
- ALLFUNCTIONSSCHEMAIN-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.
- [SETINCLUDENEW[=] TRUE | FALSE FOR SCHEMA Schema]
Eine Klausel, die angibt, ob future Tabellen, Ansichten oder SQL benutzerdefinierte Funktionen (UDFs), die im angegebenen Schema erstellt wurden, zur Datenfreigabe hinzugefügt werden sollen. Aktuelle Tabellen, Ansichten oder Tabellen 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 ist die INCLUDENEW Klausel falsch.
ALTERDATASHAREHinweise zur Nutzung
-
Die folgenden Benutzer können ein Datashare ändern:
Ein Superuser
Der Besitzer des Datashares
Benutzer, die über ALTER oder über ALL Rechte für den Datashare verfügen
Um bestimmte Objekte zu einem Datashare hinzuzufügen, müssen Benutzer die richtigen Berechtigungen für die Objekte haben. Benutzer sollten Eigentümer von Objekten sein oder über SELECT ALL Rechte für die Objekte verfügen. USAGE
Sie können Schemas, Tabellen, reguläre Ansichten, Late-Binding-Ansichten, materialisierte Ansichten und SQL benutzerdefinierte Funktionen () gemeinsam nutzen. UDFs 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 erstellen, bei denen die Einstellung „Öffentlich zugänglich“ aktiviert ist.
Im Allgemeinen empfehlen wir, dass Sie eine AWS Data Exchange Datenfreigabe nicht ändern, um die öffentliche Zugänglichkeit mithilfe der Anweisung auszuschalten. ALTER DATASHARE 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'
Um zu ermöglichen, dass eine AWS Data Exchange Datenfreigabe so geändert wird, dass die öffentlich zugängliche Einstellung deaktiviert wird, legen Sie die folgende Variable fest und führen Sie die Anweisung erneut aus. ALTER DATASHARE
SET datashare_break_glass_session_var to 'c670ba4db22f4b';
ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE;
In diesem Fall generiert Amazon Redshift einen zufälligen einmaligen Wert, um die Sitzungsvariable so einzustellen, dass sie eine gemeinsame Nutzung von AWS Data Exchange Daten ermöglicht ALTER DATASHARE SET PUBLICACCESSIBLEFALSE.
Beispiele
Das folgende Beispiel fügt das public
Schema zum Datashare hinzu. 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;