Catégories :

Utilisateur et sécurité DDL (Intégrations de services tiers)

ALTER STORAGE INTEGRATION

Modifie les propriétés d’une intégration de stockage existante.

Voir aussi :

CREATE STORAGE INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS , DESCRIBE INTEGRATION

Dans ce chapitre :

Syntaxe

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
                                                          }
                                                          [ , ... ]

Où :

cloudProviderParams (for Amazon S3) ::=
  STORAGE_AWS_ROLE_ARN = '<iam_role>'
  [ STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control' ]
cloudProviderParams (for Microsoft Azure) ::=
  AZURE_TENANT_ID = '<tenant_id>'

Paramètres

nom

Identificateur pour l’intégration à modifier. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

SET ...

Spécifie un(e) ou plusieurs paramètre(s)/propriété(s) à définir pour la table (séparés par des espaces, des virgules ou de nouvelles lignes) :

ENABLED = TRUE | FALSE

Spécifie si cette intégration de stockage est disponible pour une utilisation dans des zones de préparation.

  • TRUE permet aux utilisateurs de créer de nouvelles zones de préparation faisant référence à cette intégration. Les zones de préparation existantes qui font référence à cette intégration fonctionnent normalement.

  • FALSE empêche les utilisateurs de créer de nouvelles zones de préparation faisant référence à cette intégration. Les zones de préparation existantes faisant référence à cette intégration ne peuvent pas accéder à l’emplacement de stockage dans la définition de zone de préparation.

STORAGE_ALLOWED_LOCATIONS = ('url_cloud_spécifique')

Limite explicitement les zones de préparation externes qui utilisent l’intégration pour faire référence à un ou plusieurs emplacements de stockage (Amazon S3, Google Cloud Storage ou Microsoft Azure). Prend en charge une liste d” URLs séparée par des virgules pour les compartiments existants et, éventuellement, les chemins utilisés pour stocker les fichiers de données à des fins de chargement/déchargement. Prend également en charge le caractère générique * ce qui signifie « autoriser l’accès à tous les compartiments et/ou chemins ».

Notez que si la valeur STORAGE_ALLOWED_LOCATIONS inclut un emplacement de stockage spécifique, tous les sous-chemins du même emplacement doivent être autorisés. Aucun sous-chemin ne peut être inclus dans une valeur STORAGE_BLOCKED_LOCATIONS. Par exemple, si STORAGE_ALLOWED_LOCATIONS inclut emplacement_stockage/, alors STORAGE_BLOCKED_LOCATIONS ne peut pas inclure emplacement_stockage/path1/. De même, si STORAGE_ALLOWED_LOCATIONS inclut emplacement_stockage/path1/, alors STORAGE_BLOCKED_LOCATIONS ne peut pas inclure emplacement_stockage/path1/path2/, et ainsi de suite.

Amazon S3

STORAGE_ALLOWED_LOCATIONS = ('s3://compartiment/chemin/', 's3://compartiment/chemin/')

  • compartiment est le nom d’un compartiment S3 qui stocke vos fichiers de données (par exemple, mybucket).

  • chemin est un chemin facultatif sensible à la casse pour les fichiers de l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne commune) qui limite l’accès à un ensemble de fichiers. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.

Google Cloud Storage

STORAGE_ALLOWED_LOCATIONS = ('gcs://compartiment/chemin/', 'gcs://compartiment/chemin/')

  • compartiment est le nom d’un compartiment GCS qui stocke vos fichiers de données (par exemple, mybucket).

  • chemin est un chemin facultatif sensible à la casse pour les fichiers de l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne commune) qui limite l’accès à un ensemble de fichiers. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.

Microsoft Azure

STORAGE_ALLOWED_LOCATIONS = ('azure://compte.blob.core.windows.net/conteneur/chemin/', 'azure://compte.blob.core.windows.net/conteneur/chemin/')

  • compte est le nom du compte Azure (par exemple, myaccount). Utilisez le point de terminaison blob.core.windows.net pour tous les types de comptes de stockage Azure Blob pris en charge, dont Data Lake Storage Gen2.

  • conteneur est le nom du conteneur Azure qui stocke vos fichiers de données (par exemple, mycontainer).

  • chemin est un chemin facultatif sensible à la casse pour les fichiers de l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne commune) qui limite l’accès à un ensemble de fichiers. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.

STORAGE_BLOCKED_LOCATIONS = ('url_cloud_spécifique')

Empêche explicitement les zones de préparation externes qui utilisent l’intégration de référencer un ou plusieurs emplacements de stockage (Amazon S3, Google Cloud Storage, Microsoft Azure). Prend en charge une liste d” URLs séparée par des virgules pour les emplacements de stockage existants et, éventuellement, les chemins utilisés pour stocker les fichiers de données à des fins de chargement/déchargement. Couramment utilisé lorsque STORAGE_ALLOWED_LOCATIONS est défini sur le caractère générique *, ce qui permet d’accéder à tous les compartiments de votre compte à l’exception des emplacements de stockage bloqués et, éventuellement, des chemins d’accès.

Amazon S3

STORAGE_BLOCKED_LOCATIONS = ('s3://compartiment/chemin/', 's3://compartiment/chemin/')

  • compartiment est le nom d’un compartiment S3 qui stocke vos fichiers de données (par exemple, mybucket).

  • chemin est un chemin facultatif (ou répertoire) dans le compartiment qui limite encore plus l’accès aux fichiers de données.

Google Cloud Storage

STORAGE_BLOCKED_LOCATIONS = ('gcs://compartiment/chemin/', 'gcs://compartiment/chemin/')

  • compartiment est le nom d’un compartiment GCS qui stocke vos fichiers de données (par exemple, mybucket).

  • chemin est un chemin facultatif (ou répertoire) dans le compartiment qui limite encore plus l’accès aux fichiers de données.

Microsoft Azure

STORAGE_BLOCKED_LOCATIONS = ('azure://compte.blob.core.windows.net/conteneur/chemin/', 'azure://compte.blob.core.windows.net/conteneur/chemin/')

  • compte est le nom du compte Azure (par exemple, myaccount).

  • conteneur est le nom du conteneur Azure qui stocke vos fichiers de données (par exemple, mycontainer).

  • chemin est un chemin facultatif (ou répertoire) dans le conteneur qui limite encore plus l’accès aux fichiers de données.

TAG nom_balise = 'valeur_balise' [ , nom_balise = 'valeur_balise' , ... ]

Spécifie le nom de la balise (c’est-à-dire la clé) et la valeur de la balise.

La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256. Le nombre maximum de clés de balises uniques pouvant être définies sur un objet est de 20.

COMMENT = 'littéral_chaine'

Chaîne (littérale) qui spécifie un commentaire pour l’intégration.

UNSET ...

Spécifie un(e) ou plusieurs paramètres/propriété(s) à désactiver pour l’intégration de stockage, ce qui les réinitialise à leurs valeurs par défaut :

  • ENABLED

  • STORAGE_BLOCKED_LOCATIONS

  • TAG nom_balise [ , nom_balise ... ]

  • COMMENT

Paramètres du fournisseur Cloud (cloudProviderParams)

Amazon S3

STORAGE_AWS_ROLE_ARN = rôle_iam

Spécifie le nom de ressource Amazon (ARN) du rôle AWS de gestion des identités et des accès (IAM) qui octroie des privilèges sur le compartiment S3 contenant vos fichiers de données. Pour plus d’informations, voir Configuration de l’accès sécurisé à Amazon S3.

STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control'

Permet de prendre en charge les listes de contrôle d’accès AWS (ACLs) pour accorder au propriétaire du compartiment S3 un contrôle total. Les fichiers créés dans les compartiments Amazon S3 à partir de données de table déchargées sont la propriété d’un rôle de gestion des identités et des accès AWS (IAM). Les ACLs prennent en charge le cas d’utilisation où les rôles IAM d’un compte AWS sont configurés pour accéder à des compartiments S3 d’un ou plusieurs autres comptes AWS. Sans la prise en charge ACL, les utilisateurs des comptes propriétaires de compartiments ne pourraient pas accéder aux fichiers de données déchargés vers une zone de préparation externe (S3) en utilisant une intégration de stockage.

Lorsque les utilisateurs déchargent les données de la table Snowflake dans des fichiers de données d’une zone de préparation S3 en utilisant COPY INTO <emplacement>, l’opération de déchargement applique une ACL aux fichiers de données déchargés. Les fichiers de données appliquent le privilège "s3:x-amz-acl":"bucket-owner-full-control" aux fichiers, accordant au propriétaire du compartiment S3 un contrôle total sur ces derniers.

Microsoft Azure

AZURE_TENANT_ID = 'id_client'

Spécifie l” ID de votre client Office 365 auquel appartiennent les comptes de stockage autorisés et bloqués. Une intégration de stockage peut s’authentifier auprès d’un seul client. Les emplacements de stockage autorisés et bloqués doivent donc faire référence aux comptes de stockage qui appartiennent tous à ce client.

Pour trouver votre ID de client, connectez-vous au portail Azure et cliquez sur Azure Active Directory » Properties. L” ID de client s’affiche dans le champ Directory ID.

Notes sur l’utilisation

Concernant les métadonnées :

Attention

Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

Exemples

L’exemple suivant lance l’opération d’une intégration suspendue :

ALTER STORAGE INTEGRATION myint SET ENABLED = TRUE;