ALTER STORAGE INTEGRATION¶
Ändert die Eigenschaften für eine bestehende Speicherintegration.
Syntax¶
ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET
[ cloudProviderParams ]
[ ENABLED = { TRUE | FALSE } ]
[ STORAGE_ALLOWED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
[ STORAGE_BLOCKED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ STORAGE ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ENABLED |
STORAGE_BLOCKED_LOCATIONS |
COMMENT
}
[ , ... ]
Wobei:
cloudProviderParams (for Amazon S3) ::= STORAGE_AWS_ROLE_ARN = '<iam_role>' [ STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control' ] [ STORAGE_AWS_EXTERNAL_ID = '<external_id>' ]cloudProviderParams (for Microsoft Azure) ::= AZURE_TENANT_ID = '<tenant_id>'
Parameter¶
name
Bezeichner für die zu ändernde Integration. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
SET ...
Gibt eine oder mehrere Eigenschaften/Parameter an, die für die Tabelle festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen):
ENABLED = TRUE | FALSE
Gibt an, ob diese Speicherintegration für die Nutzung in Stagingbereichen verfügbar ist.
TRUE
ermöglicht Benutzern das Erstellen neuer Stagingbereiche, die auf diese Integration verweisen. Bestehende Stagingbereiche, die auf diese Integration verweisen, funktionieren normal.FALSE
verhindert, dass Benutzer neue Stagingbereiche erstellen, die auf diese Integration verweisen. Bestehende Stagingbereiche, die auf diese Integration verweisen, können nicht auf den Speicherort in der Stagingbereichsdefinition zugreifen.
STORAGE_ALLOWED_LOCATIONS = ('cloud_specific_url')
Schränkt externe Stagingbereiche, die die Integration verwenden, explizit darauf ein, auf einen oder mehrere Speicherorte (Amazon S3, Google Cloud Storage oder Microsoft Azure) zu verweisen. Unterstützt eine durch Kommas getrennte Liste von URLs für vorhandene Buckets und optional Pfade zum Speichern von Datendateien für das Laden/Entladen. Unterstützt alternativ den Platzhalter
*
mit der Bedeutung „Zugriff auf alle Buckets und/oder Pfade zulassen“.Beachten Sie Folgendes: Wenn der Wert
STORAGE_ALLOWED_LOCATIONS
einen bestimmten Speicherort einschließt, müssen alle Unterpfade am selben Speicherort erlaubt sein. In einemSTORAGE_BLOCKED_LOCATIONS
-Wert kann kein Unterpfad enthalten sein. Beispiel: WennSTORAGE_ALLOWED_LOCATIONS
den Pfadstorage_location/
enthält, kannSTORAGE_BLOCKED_LOCATIONS
nichtstorage_location/path1/
enthalten. WennSTORAGE_ALLOWED_LOCATIONS
alsostorage_location/path1/
enthält, kannSTORAGE_BLOCKED_LOCATIONS
nichtstorage_location/path1/path2/
enthalten, und so weiter.Amazon S3
STORAGE_ALLOWED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] )
|STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )
bucket
ist der Name des S3-Buckets, in dem Ihre Datendateien gespeichert sind (z. B.mybucket
).path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung für Dateien am Cloudspeicherort (d. h. Dateien haben Namen, die mit einer gemeinsamen Zeichenfolge beginnen), wodurch der Zugriff auf bestimmte Dateien eingegrenzt wird. Pfade werden von den verschiedenen Cloudspeicherdiensten alternativ als Präfixe oder Ordner bezeichnet.
Google Cloud Storage
STORAGE_ALLOWED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )
bucket
ist der Name des GCS-Buckets, in dem Ihre Datendateien gespeichert sind (z. B.mybucket
).path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung für Dateien am Cloudspeicherort (d. h. Dateien haben Namen, die mit einer gemeinsamen Zeichenfolge beginnen), wodurch der Zugriff auf bestimmte Dateien eingegrenzt wird. Pfade werden von den verschiedenen Cloudspeicherdiensten alternativ als Präfixe oder Ordner bezeichnet.
Microsoft Azure
STORAGE_ALLOWED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )
account
ist der Name des Azure-Kontos (z. B.myaccount
). Verwenden Sie den Endpunktblob.core.windows.net
für alle unterstützten Typen von Azure-Blob-Speicherkonten, einschließlich Data Lake Storage Gen2.container
ist der Name des Azure-Containers, in dem Ihre Datendateien gespeichert sind (z. B.mycontainer
).path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung für Dateien am Cloudspeicherort (d. h. Dateien haben Namen, die mit einer gemeinsamen Zeichenfolge beginnen), wodurch der Zugriff auf bestimmte Dateien eingegrenzt wird. Pfade werden von den verschiedenen Cloudspeicherdiensten alternativ als Präfixe oder Ordner bezeichnet.
STORAGE_BLOCKED_LOCATIONS = ('cloud_specific_url')
Verhindert ausdrücklich, dass externe Stagingbereiche, die die Integration verwenden, auf einen oder mehrere Speicherorte (Amazon S3, Google Cloud Storage, Microsoft Azure) verweisen. Unterstützt eine durch Kommas getrennte Liste von URLs für vorhandene Speicherorte und optional Pfade zum Speichern von Datendateien für das Laden/Entladen. Wird häufig verwendet, wenn STORAGE_ALLOWED_LOCATIONS auf den Platzhalter
*
gesetzt ist, sodass Zugriff auf alle Buckets in Ihrem Konto mit Ausnahme von gesperrten Speicherorten und (optional) Pfaden zulässig ist.Bemerkung
Achten Sie darauf, nur URLs für einzelne Cloudspeicherorte in Anführungszeichen zu setzen. Wenn Sie den gesamten
STORAGE_BLOCKED_LOCATIONS
-Wert in Anführungszeichen einschließen, ist der Wert ungültig. Dadurch wird die ParametereinstellungSTORAGE_BLOCKED_LOCATIONS
ignoriert, wenn Benutzer Stagingbereiche erstellen, die auf die Speicherintegration verweisen.Amazon S3
STORAGE_BLOCKED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] )
|STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )
bucket
ist der Name des S3-Buckets, in dem Ihre Datendateien gespeichert sind (z. B.mybucket
).path
ist ein optionaler Pfad (oder ein Verzeichnis) im Bucket, der bzw. das den Zugriff auf Datendateien weiter einschränkt.
Google Cloud Storage
STORAGE_BLOCKED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )
bucket
ist der Name des GCS-Buckets, in dem Ihre Datendateien gespeichert sind (z. B.mybucket
).path
ist ein optionaler Pfad (oder ein Verzeichnis) im Bucket, der bzw. das den Zugriff auf Datendateien weiter einschränkt.
Microsoft Azure
STORAGE_BLOCKED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )
account
ist der Name des Azure-Kontos (z. B.myaccount
).container
ist der Name des Azure-Containers, in dem Ihre Datendateien gespeichert sind (z. B.mycontainer
).path
ist ein optionaler Pfad (oder ein Verzeichnis) im Container, der bzw. das den Zugriff auf Datendateien weiter einschränkt.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.
Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.
Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.
COMMENT = 'string_literal'
Zeichenfolge (Literal), die einen Kommentar zur Integration enthält.
UNSET ...
Gibt eine oder mehrere Eigenschaften/Parameter an, die für die Speicherintegration nicht festgelegt werden sollen, wodurch sie auf ihre Standardwerte zurückgesetzt werden:
ENABLED
STORAGE_BLOCKED_LOCATIONS
TAG tag_name [ , tag_name ... ]
COMMENT
Cloudanbieterparameter (cloudProviderParams
)¶
Amazon S3
STORAGE_AWS_ROLE_ARN = 'iam_role'
Gibt den Amazon Resource Name (ARN) der AWS-Rolle für Identitäts- und Zugriffsverwaltung (IAM) an, die Berechtigungen für den S3-Bucket mit Ihren Datendateien gewährt. Weitere Informationen dazu finden Sie unter Konfigurieren des sicheren Zugriffs auf Amazon S3.
STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control'
Aktiviert die Unterstützung von AWS-Zugriffskontrolllisten (ACLs), um dem Eigentümer des S3-Buckets volle Kontrolle zu gewähren. Dateien, die in Amazon S3-Buckets aus entladenen Tabellendaten erstellt werden, sind Eigentum einer AWS-Rolle für Identitäts- und Zugriffsmanagement (IAM). ACLs unterstützen den Anwendungsfall, bei dem IAM-Rollen in einem AWS-Konto für den Zugriff auf S3-Buckets in einem oder mehreren anderen AWS-Konten konfiguriert sind. Ohne ACL-Unterstützung konnten Benutzer in Konten von Bucket-Eigentümern nicht auf die Datendateien zugreifen, die mithilfe einer Speicherintegration in einen externen (S3) Stagingbereich entladen wurden.
Wenn Benutzer Snowflake-Tabellendaten in Datendateien in einem S3-Stagingbereich mit COPY INTO <Speicherort> entladen, wendet die Entladeoperation eine ACL auf die entladenen Datendateien an. Die Datendateien wenden die Berechtigung
"s3:x-amz-acl":"bucket-owner-full-control"
auf die Dateien an und gewähren dem Besitzer des S3-Buckets volle Kontrolle über sie.STORAGE_AWS_EXTERNAL_ID = 'external_id'
Gibt eine externe ID an, die Snowflake verwendet, um eine Vertrauensstellung mit AWS aufzubauen. Sie müssen in der Vertrauensrichtlinie der IAM-Rolle, die Sie für diese Speicherintegration konfiguriert haben, dieselbe externe ID angeben. Weitere Informationen finden Sie unter Verwenden einer externen ID beim Gewähren des Zugriff auf AWS-Ressourcen für Dritte.
Microsoft Azure
AZURE_TENANT_ID = 'tenant_id'
Gibt die ID Ihres Office 365-Mandanten an, zu dem die zulässigen und gesperrten Speicherkonten gehören. Die Authentifizierung einer Speicherintegration kann nur für einen einzigen Mandanten erfolgen. Daher müssen sich die zulässigen und blockierten Speicherorte auf Speicherkonten beziehen, die alle diesem einen Mandanten gehören.
Melden Sie sich beim Azure-Portal an, und klicken Sie auf Azure Active Directory » Properties, um Ihre Mandanten-ID zu ermitteln. Die Mandanten-ID wird im Feld Tenant ID angezeigt.
Nutzungshinweise¶
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Das folgende Beispiel leitet die Operation einer angehaltenen Integration ein:
ALTER STORAGE INTEGRATION myint SET ENABLED = TRUE;