Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blog-Posting
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.
Verwalten von Berechtigungen für ein Datashare in Amazon Redshift
Als Produzenten-Administrator behalten Sie die Kontrolle über die Datensätze, die Sie freigeben. Sie können neue Objekte hinzufügen oder sie aus dem Datashare entfernen. Sie können auch den Zugriff auf Datashares als Ganzes für die Consumer-Cluster, AWS Konten oder Regionen gewähren oder entziehen. AWS Wenn Berechtigungen aufgehoben werden, verlieren Konsumenten-Cluster umgehend den Zugriff auf freigegebene Objekte. Sie sehen diese auch nicht mehr in der Liste EINGEHENDER Datashares in SVV_DATASHARES.
Im folgenden Beispiel werden das Datashare salesshare erstellt, das Schema public hinzugefügt und die Tabelle public.tickit_sales_redshift zu salesshare hinzugefügt. Außerdem werden dem angegebenen Namespace Nutzungsberechtigungen für salesshare erteilt.
CREATE DATASHARE salesshare; ALTER DATASHARE salesshare ADD SCHEMA public; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
Für CREATE DATASHARE können Superuser und Datenbankbesitzer Datashares erstellen. Weitere Informationen finden Sie unter DATASHARE ERSTELLEN. Bei ALTER DATASHARE kann der Besitzer des Datashares mit den erforderlichen Berechtigungen für die hinzuzufügenden oder zu entfernenden Datashare-Objekte das Datashare ändern. Weitere Informationen finden Sie unter ALTER DATASHARE.
Wenn Sie als Administrator eines Produzenten-Clusters ein Datashare entfernen, wird es nicht mehr im Konsumenten-Cluster aufgeführt. Die Datenbanken und Schemareferenzen, die auf dem Consumer-Cluster aus dem gelöschten Datashare erstellt wurden, sind weiterhin ohne Objekte vorhanden. Der Konsumenten-Administrator muss diese Datenbanken manuell löschen.
Auf der Konsumentenseite kann ein Konsumenten-Administrator durch Erstellen einer Datenbank aus dem Datashare festlegen, welche Benutzer und Rollen Zugriff auf die freigegebenen Daten erhalten sollen. Abhängig von den Optionen, die Sie bei der Erstellung der Datenbank wählen, können Sie den Zugriff auf die Datenbank wie folgt steuern. Weitere Informationen zum Erstellen einer Datenbank aus einem Datashare finden Sie unter CREATE DATABASE.
Weitere Informationen zum Einrichten einer Datenfreigabe und zum Lesen von Daten eines Verbrauchers finden Sie unter Teilen des Lesezugriffs auf Daten innerhalb eines Kontos. AWS
Erstellen der Datenbank ohne die WITH PERMISSIONS-Klausel
Ein Administrator kann den Zugriff auf Datenbank- oder Schemaebene steuern. Um den Zugriff auf Schemaebene zu steuern, muss der Administrator ein externes Schema aus der Amazon-Redshift-Datenbank erstellen, die aus dem Datashare erstellt wurde.
Im folgenden Beispiel werden Berechtigungen für den Zugriff auf eine freigegebene Tabelle auf Datenbank- und Schemaebene erteilt.
GRANT USAGE ON DATABASE sales_db TO Bob; CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE sales_db SCHEMA 'public'; GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
Um den Zugriff weiter einzuschränken, können Sie Ansichten über freigegebene Objekte erstellen, wobei nur die erforderlichen Daten verfügbar sind. Sie können diese Ansichten dann verwenden, um den Benutzern und Rollen Zugriff zu gewähren.
Nachdem den Benutzern Zugriff auf die Datenbank oder das Schema erteilt wurde, haben sie Zugriff auf alle freigegebenen Objekte in dieser Datenbank oder diesem Schema.
Erstellen der Datenbank mit der WITH PERMISSIONS-Klausel
Nach der Gewährung von Nutzungsrechten für die Datenbank oder das Schema kann ein Administrator den Zugriff mit demselben Verfahren weiter kontrollieren, wie er es für eine lokale Datenbank oder ein lokales Schema tun würde. Ohne individuelle Objektberechtigungen können Benutzer auch dann nicht auf Objekte in der gemeinsam genutzten Datenbank oder dem Schema zugreifen, wenn ihnen die USAGE-Berechtigung erteilt wurde.
Im folgenden Beispiel werden Berechtigungen für den Zugriff auf eine gemeinsam genutzte Tabelle auf Datenbankebene erteilt.
GRANT USAGE ON DATABASE sales_db TO Bob; GRANT USAGE FOR SCHEMAS IN DATABASE sales_db TO Bob; GRANT SELECT ON sales_db.public.tickit_sales_redshift TO Bob;
Nachdem Benutzern der Zugriff auf die Datenbank oder das Schema gewährt wurde, müssen sie weiterhin die entsprechenden Berechtigungen für alle Objekte in der Datenbank oder in dem Schema erhalten, auf die sie zugreifen sollen.
Granulare Freigabe mittels WITH PERMISSIONS
Sie können eine granulare Freigabe mittels WITH PERMISSIONS verwenden, um Clustern oder Serverless-Arbeitsgruppen die Abfrage des Datashares zu ermöglichen. In diesem Prozess wird davon ausgegangen, dass das Datashare aus einem anderen Cluster oder Namespace in Amazon Redshift Serverless in Ihrem Konto oder aus einem anderen Konto stammt und mit dem von Ihnen verwendeten Namespace verknüpft wurde.
-
Der Administrator der Konsumenten-Datenbank kann eine Datenbank aus dem Datashare erstellen.
CREATE DATABASE my_ds_db [WITH PERMISSIONS] FROM DATASHARE my_datashare OF NAMESPACE 'abc123def';Wenn Sie eine Datenbank mittels WITH PERMISSIONS erstellen, können Sie verschiedenen Benutzern und Rollen granulare Berechtigungen für Datashare-Objekte erteilen. Andernfalls erhalten alle Benutzer und Rollen, denen die USAGE-Berechtigung für die Datashare-Datenbank gewährt wurde, alle Berechtigungen für alle Objekte in der Datashare-Datenbank.
-
Im Folgenden wird gezeigt, wie einem Redshift-Datenbankbenutzer oder -rolle Berechtigungen erteilt werden. Sie müssen mit einer lokalen Datenbank verbunden sein, um diese Anweisungen auszuführen. Sie können diese Anweisungen nicht ausführen, wenn Sie vor der Ausführung der Grant-Anweisungen einen USE-Befehl in der Datashare-Datenbank ausführen.
GRANT USAGE ON DATABASE my_ds_db TO ROLE data_eng; GRANT CREATE, USAGE ON SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng; GRANT ALL ON ALL TABLES IN SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng; GRANT USAGE ON DATABASE my_ds_db TO bi_user; GRANT USAGE ON SCHEMA my_ds_db.my_shared_schema TO bi_user; GRANT SELECT ON my_ds_db.my_shared_schema.table1 TO bi_user;