Rediriger les connexions du client

La redirection des clients permet de rediriger les connexions de vos clients vers des comptes Snowflake dans différentes régions pour assurer la continuité des activités et la reprise après sinistre, ou lors de la migration de votre compte vers une autre région ou une autre plateforme Cloud.

Dans ce chapitre :

Présentation de la redirection des clients

La redirection des clients est mise en œuvre par le biais d’un objet Snowflake de connexion. L’objet de connexion stocke une URL de connexion sécurisée que vous utilisez avec un client Snowflake pour vous connecter à Snowflake.

Le nom d’hôte de l’URL de connexion est composé du nom de votre organisation et du nom de l’objet de connexion en plus d’un nom de domaine commun :

organization_name-connection_name.snowflakecomputing.com

Notez que ce nom d’hôte ne spécifie pas le compte auquel vous vous connectez. Un administrateur de compte détermine le compte à utiliser en désignant la connexion de ce compte comme étant la connexion primaire. Lorsque vous utilisez l’URL de connexion pour vous connecter à Snowflake, vous vous connectez au compte qui contient la connexion primaire.

Si une panne se produit dans une région ou une plateforme Cloud et que la panne affecte le compte avec la connexion primaire, l’administrateur peut promouvoir une connexion dans un compte différent dans une région ou une plateforme Cloud différents pour servir de connexion primaire.

Pendant cette panne, vous pouvez continuer à utiliser la même URL de connexion pour vous connecter à Snowflake. Snowflake résout l’URL de connexion vers le compte avec la connexion venant d’être promue (le compte situé en dehors de la région ou de la plateforme Cloud affectés par la panne).

Note

Les comptes Snowflake qui stockent les connexions primaires et secondaires doivent être hébergés dans différentes régions.

Flux de redirection des clients

  1. Suivez les étapes de la section Configuration de la redirection des clients (dans cette rubrique) pour créer une URL de connexion pour les connexions client. Cela comprend la création d’une connexion primaire et d’une ou plusieurs connexions secondaires liées.

  2. Mettez à jour les clients Snowflake pour qu’ils se connectent en utilisant l’URL de connexion. Utilisation d’une URL de connexion (dans cette rubrique) contient une liste des clients pris en charge et des détails de connexion.

  3. En cas de panne de service dans la région où se trouve la connexion primaire, effectuez les étapes de Rediriger les connexions du client (dans cette rubrique) pour mettre à jour l’URL de connexion afin de la rediriger vers une connexion secondaire.

  4. Lorsque la panne est résolue, effectuez les étapes de Rediriger les connexions du client pour rediriger les connexions des clients vers la connexion primaire d’origine.

Les diagrammes suivants illustrent le flux de redirection des clients pour deux comptes dans la même organisation mais dans des régions différentes (Region A et Region B) sur des plateformes Cloud identiques ou différentes.

La connexion primaire est dans Account 1 dans Region A. Les clients Snowflake utilisant l’URL de connexion se connectent à Account 1.

Normal client connections

Une interruption de service dans Region A entraîne l’échec des connexions des clients :

Failed client connections

La connexion dans Account 2 dans Region B est promue pour agir en tant que connexion primaire. Les clients Snowflake utilisant l’URL de connexion se connectent désormais à Account 2.

Redirected client connections

Exemple

Les instructions SQL suivantes passent par le flux de travail de redirection du client. Chaque étape est expliquée en détail dans les sections qui suivent dans cette rubrique.

Connexions normales des clients : configurer la redirection du client

Créer une connexion primaire dans le compte source

Créez une nouvelle connexion primaire et activez le basculement vers d’autres comptes de votre organisation. Chaque compte qui est activé pour le basculement doit être dans une région différente de celle du compte avec la connexion primaire.

Notez la colonne account_name dans la sortie de SHOW REPLICATION ACCOUNTS pour chaque compte à activer pour le basculement.

Exécutez les instructions suivantes dans le compte source :

-- Create a new primary connection
CREATE CONNECTION myconnection;

-- View accounts in your organization that are enabled for replication
SHOW REPLICATION ACCOUNTS;

-- Configure failover accounts for the primary connection
ALTER CONNECTION myconnection
  ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;

-- View the details for the connection
SHOW CONNECTIONS;
Copy

Si une connectivité privée au service Snowflake est activée pour votre compte Snowflake, vous devez créer et gérer un enregistrement DNS CNAME pour votre URL de connexion. Pour plus de détails, voir Configuration des paramètres DNS pour la connectivité privée au service Snowflake.

Exécuté sur le compte cible

Créez une connexion secondaire liée à la connexion primaire. Le nom de la connexion secondaire doit être le même que celui de la connexion primaire.

CREATE CONNECTION myconnection
  AS REPLICA OF myorg.myaccount1.myconnection;
Copy

Si une connectivité privée au service Snowflake est activée pour votre compte Snowflake, vous devez créer ou mettre à jour un enregistrement DNS CNAME pour votre URL de connexion. Pour plus de détails, voir Modification des paramètres DNS pour la connectivité privée au service Snowflake.

Une panne se produit dans la région source : basculement

Si une panne survient dans la région où se trouve la connexion primaire, promouvez une connexion secondaire dans une région différente pour servir de connexion primaire.

Exécuté sur le compte cible
ALTER CONNECTION myconnection PRIMARY;
Copy

Si une connectivité privée au service Snowflake est activée pour votre compte Snowflake, vous devez créer ou mettre à jour un enregistrement DNS CNAME pour votre URL de connexion. Pour plus de détails, voir Modification des paramètres DNS pour la connectivité privée au service Snowflake.

Panne résolue : restauration

Une fois la panne résolue, faites en sorte que la connexion primaire d’origine serve à nouveau de connexion primaire.

Exécuter à partir du compte source

Exécutez la commande suivante depuis le compte avec la connexion que vous voulez promouvoir comme connexion primaire :

ALTER CONNECTION myconnection PRIMARY;
Copy

Si une connectivité privée au service Snowflake est activée pour votre compte Snowflake, vous devez créer ou mettre à jour un enregistrement DNS CNAME pour votre URL de connexion. Pour plus de détails, voir Modification des paramètres DNS pour la connectivité privée au service Snowflake.

Configuration de la redirection des clients

Cette section décrit comment créer une connexion primaire et une ou plusieurs connexions secondaires dans un groupe de connexions.

Condition préalable

Pour activer la fonction de redirection des clients pour vos comptes, un administrateur d’organisation (un utilisateur ayant le rôle ORGADMIN) doit activer la réplication pour au moins deux comptes. Pour activer la réplication, voir Condition préalable : activer la réplication des comptes dans l’organisation pour des instructions détaillées.

Créer une connexion primaire

Important

Snowflake a attribué à votre organisation un nom unique et généré lors de sa création dans le système. Le nom de l’organisation est une partie de l’URL de connexion définie dans un objet de connexion et soumise par les clients Snowflake pour accéder à un compte. Avant de créer des objets de connexion, vérifiez que le nom de votre organisation dans Snowflake est satisfaisant. Pour changer le nom de votre organisation dans le système, contactez l’assistance Snowflake.

Vous pouvez créer une connexion primaire dans le compte source en utilisant Snowsight ou SQL.

Créer une connexion primaire et secondaire à l’aide de Snowsight

Pour créer une connexion à l’aide de Snowsight, procédez comme suit :

Note

  • Seul un utilisateur ayant le rôle ACCOUNTADMIN peut créer une connexion en utilisant Snowsight.

  • Vous devez être connecté au compte cible en tant qu’utilisateur ayant le rôle ACCOUNTADMIN. Si ce n’est pas le cas, vous serez invité à vous connecter.

  1. Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.

  2. Sélectionnez Client Redirect.

  3. Sélectionnez + Connection.

  4. Sélectionnez Target Account.

  5. Dans la boîte Connection Name, entrez un nom de connexion qui répond aux exigences suivantes :

    • Doit commencer par un caractère alphabétique et ne peut contenir que des lettres, des chiffres décimaux (0-9) et des caractères de soulignement (_).

    • Doit être unique parmi tous les noms de connexions et de comptes dans l’organisation.

  6. Sélectionnez Create Connection.

Créer une connexion primaire avec SQL

Note

Seuls un utilisateur avec le rôle ACCOUNTADMIN peut exécuter les commandes SQL dans cette section.

  1. Créez une nouvelle connexion primaire en utilisant la commande CREATE CONNECTION. Le nom de chaque connexion primaire doit être unique parmi tous les noms de connexions et de comptes dans l’organisation.

    Le nom de la connexion est inclus dans l’URL de connexion utilisée pour se connecter aux comptes Snowflake.

    Par exemple, pour créer une connexion nommée myconnection :

    CREATE CONNECTION myconnection;
    
    Copy
  2. Modifiez cette connexion primaire en utilisant une instruction ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS. Fournissez une liste, séparée par des virgules, des comptes de votre organisation qui peuvent stocker une option de basculement pour cette connexion (c’est-à-dire une connexion secondaire).

    Tout compte qui stocke une connexion secondaire doit être hébergé dans une région différente de celle du compte qui stocke la connexion primaire. La redirection des clients ne fonctionne bien que dans les régions. Par exemple, si vous essayez de rediriger les connexions des clients de account1 vers account2 dans la même région, la redirection des clients ne fonctionne pas.

    Pour voir la liste complète des comptes de votre organisation qui sont activés pour la réplication, exécutez SHOW REPLICATION ACCOUNTS.

    Par exemple, autorisez les comptes myaccount2 et myaccount3 de l’organisation myorg à stocker chacun une connexion secondaire pour la connexion myconnection :

    ALTER CONNECTION myconnection ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
    
    Copy
  3. Exécutez la commande SHOW CONNECTIONS pour voir les détails de la connexion.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

Créer une connexion secondaire

Créez une connexion secondaire dans un ou plusieurs comptes, liée à une connexion primaire en utilisant CREATE CONNECTION … AS REPLICA OF. Notez que vous ne pouvez créer une base de données secondaire que dans un compte spécifié dans l’instruction ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS dans Créer une connexion primaire.

Exécutez une instruction CREATE CONNECTION … AS REPLICA OF dans chaque compte cible pour créer un réplica de la connexion primaire spécifiée.

Important

Chaque connexion secondaire doit porter le même nom que sa connexion primaire. Le nom de la connexion est inclus dans l’URL de connexion.

Exécutez les instructions SQL de cette section dans le compte cible où vous voulez créer une connexion secondaire.

Note

Seuls un utilisateur avec le rôle ACCOUNTADMIN peut exécuter les commandes SQL dans cette section.

  1. Exécutez la commande SHOW CONNECTIONS pour voir toutes les connexions. Copiez la valeur de la colonne primary pour la connexion primaire. Vous utiliserez cette valeur lors de la création de la connexion secondaire à l’étape suivante.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy
  2. Exécutez la commande CREATE CONNECTION … AS REPLICA OF pour créer une connexion secondaire.

    Par exemple, créez une connexion secondaire nommée myconnection qui est liée à la connexion primaire myorg.myaccount1.myconnection. Après AS REPLICA OF, collez le nom pleinement qualifié de la connexion primaire (le nom que vous avez copié de la sortie SHOW CONNECTIONS à l’étape précédente).

    CREATE CONNECTION myconnection
      AS REPLICA OF MYORG.MYACCOUNT1.MYCONNECTION;
    
    Copy
  3. Exécutez la commande SHOW CONNECTIONS pour vérifier que la connexion secondaire a été créée.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    | AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

Configuration des paramètres DNS pour la connectivité privée au service Snowflake

Si une connectivité privée au service Snowflake est activée pour votre compte Snowflake, alors votre administrateur réseau doit créer et gérer un enregistrement DNS pour votre URL de connexion. Votre administrateur réseau peut utiliser un enregistrement CNAME, un enregistrement alias ou un alias en fonction de la configuration de l’architecture réseau.

Pour tous les autres comptes, Snowflake crée et gère l’enregistrement DNS. Par souci de cohérence, l’exemple suivant utilise l’enregistrement CNAME.

Ces étapes utilisent AWS PrivateLink comme exemple. Les étapes sont les mêmes si votre compte Snowflake utilise Azure Private Link ou Google Cloud Private Service Connect :

  1. Exécutez SHOW CONNECTIONS dans l’un de vos comptes dans lequel la redirection du client est activée. Par exemple, supposons que AWS PrivateLink est activé pour myaccount1 et myaccount2.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    |--------------------|-------------------------------|---------------------|-------------------|-----------------|---------------|-------------------------------|-------------------------------------|-------------------------------------------|-------------------|-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    | AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

    Notez que la sortie de cette commande dans la colonne CONNECTION_URL doit correspondre à la liste privatelink-connection-urls lorsque vous appelez la fonction SYSTEM$GET_PRIVATELINK_CONFIG dans myaccount1 ou myaccount2. Cette liste contient déjà l’URL de connexion formatée avec le segment privatelink (comme indiqué à l’étape suivante). Vous pouvez éventuellement exécuter la commande à cette étape ou appeler la fonction. Si vous appelez la fonction, utilisez les URLs telles quelles, sans autre modification.

  2. Enregistrez la valeur de la colonne CONNECTION_URL et créez deux URLs pour prendre en charge la connectivité privée et OCSP.

    1. Ajoutez un segment privatelink à l’URL juste avant snowflakecomputing.com (myorg-myconnection.privatelink.snowflakecomputing.com, dans cet exemple).

    2. Ajoutez un segment ocsp au début de l’URL (ocsp.myorg-myconnection.privatelink.snowflakecomputing.com, dans cet exemple).

  3. En utilisant un outil fourni par votre fournisseur DNS, créez un enregistrement CNAME pour l’URL de connexion et l’URL OCSP :

    • Définissez le domaine (ou l’alias) en utilisant la valeur modifiée de la colonne CONNECTION_URL.

    • Configurez l’enregistrement pour que l’URL de connexion soit résolue vers l’URL de compte Snowflake. Veillez à inclure tous les segments d’URL pour la région Cloud et AWS PrivateLink en fonction du format de l’URL que vous avez choisi. Il s’agit de l’URL du compte principal et c’est là que les connexions des clients à l’URL de connexion seront redirigées.

    • Configurez l’enregistrement pour que l’URL OCSP soit résolue soit à l’adresse IP du point de terminaison privé pour un compte sur Azure, soit à la valeur de l’ID du point de terminaison privé pour un compte sur AWS.

    • Dans le cas d’un basculement, vous devez mettre à jour manuellement le paramètre DNS pour que l’URL de connexion pointe vers l’URL de compte secondaire, comme indiqué dans Modification des paramètres DNS pour la connectivité privée au service Snowflake. De même, vous devez mettre à jour vos paramètres OCSP pour qu’ils pointent vers l’adresse IP du point de terminaison privé ou la valeur de l’ID du point de terminaison privé.

      Par exemple :

      myaccount1.us-west-2.privatelink.snowflakecomputing.com.
      ocsp.myaccount1.us-west-2.privatelink.snowflakecomputing.com.
      
      Copy

      Vous pouvez également utiliser l’URL du nom de l’organisation et du compte.

      Par exemple :

      myorg-myaccount1.privatelink.snowflakecomputing.com.
      ocsp.myorg-myaccount1.privatelink.snowflakecomputing.com.
      
      Copy

      Notez le point final, qui doit être inclus.

Les utilisateurs se connectent à Snowflake en utilisant le format d’URL de connexion suivant :

organization_name-connection_name.privatelink.snowflakecomputing.com

Où :

organization_name

Nom de votre organisation Snowflake. Les comptes Snowflake auxquels vos utilisateurs se connectent sont contenus dans cette organisation.

connection_name

Nom de l’objet de connexion.

Pour plus d’informations, voir :

Utilisation d’une URL de connexion

Cette section fournit des instructions pour référencer une URL de connexion dans la configuration de divers clients Snowflake.

Clients Snowflake pris en charge

La Redirection des clients est prise en charge par Snowsight et Console classique Snowflake. De plus, les versions suivantes du client Snowflake (et supérieures) prennent en charge la Redirection des clients :

Client Snowflake

Version minimale prise en charge

SnowSQL

1.1.82

Connecteur Snowflake pour Python

1.8.3

Pilote Node.js

1.2.0

Pilote Go Snowflake

1.2.0

Pilote .NET

1.0.0

Pilote JDBC

3.8.4

Pilote ODBC

2.19.4

Snowpark

Toutes les versions

Configuration des clients Snowflake

Utilisez le nom d’hôte suivant pour l’URL de connexion lorsque vous vous connectez à Snowflake :

Nom d’hôte : organization_name-connection_name.snowflakecomputing.com

Où :

organization_name

Nom de votre organisation Snowflake. Les comptes Snowflake auxquels vos utilisateurs se connectent sont contenus dans cette organisation.

connection_name

Nom de l’objet de connexion.

Important

Connectivité privée au service Snowflake

Les clients qui utilisent une connectivité privée au service Snowflake doivent ajouter un segment privatelink à l’URL juste avant snowflakecomputing.com :

organization_name-connection_name.privatelink.snowflakecomputing.com

Snowsight

Entrez ce qui suit dans le champ du nom de compte sur app.snowflake.com :

<organization-name>-<connection-name>
Copy

Par exemple :

myorg-myconnection
Copy

Lorsque vous utilisez organization-connection pour vous connecter, Snowsight navigue vers la région et le localisateur spécifiques de la connexion primaire actuelle. Pendant une panne, une fois la connexion redirigée, les utilisateurs doivent se reconnecter via organization-connection pour se connecter via la connexion primaire.

Console classique Snowflake

Entrez l’URL suivante dans un navigateur Web :

https://<organization_name>-<connection_name>.snowflakecomputing.com/
Copy

Par exemple :

https://myorg-myconnection.snowflakecomputing.com/
Copy

SnowSQL

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre de connexion accountname du fichier SnowSQL config. Pour des informations sur le fichier config, voir Configuration de SnowSQL.

accountname = <organization_name>-<connection_name>
username = <username>
password = <password>
Copy

Par exemple :

accountname = myorg-myconnection
username = jsmith
password = mySecurePassword
Copy

Connecteur Snowflake pour Python

Spécifiez le nom d’hôte de l’URL de connexion dans le paramètre de connexion account lorsque vous appelez la fonction de connexion. Pour plus d’informations, voir Connecteur Python API et Utilisation du connecteur Python.

con = snowflake.connector.connect (
      account = <organization_name>-<connection_name>
      user = <username>
      password = <password>
)
Copy

Par exemple :

con = snowflake.connector.connect (
      account = myorg-myconnection
      user = jsmith
      password = mySecurePassword
)
Copy

Pilote JDBC

Spécifiez le nom d’hôte pour l’URL de connexion dans la chaîne de connexion. Pour plus d’informations, voir Configuration du pilote JDBC.

jdbc:snowflake://<organization_name>-<connection_name>.snowflakecomputing.com/?user=<username>&password=<password>
Copy

Par exemple :

jdbc:snowflake://myorg-myconnection.snowflakecomputing.com/?user=jsmith&password=mySecurePassword
Copy

Pilote ODBC

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre de connexion du serveur. Pour plus d’informations sur les paramètres de connexion, voir Paramètres de configuration et de connexion ODBC.

[ODBC Data Sources]
<account_name> = SnowflakeDSIIDriver

[<dsn_name>]
Description     = SnowflakeDB
Driver          = SnowflakeDSIIDriver
Locale          = en-US
SERVER          = <organization_name>-<connection_name>.snowflakecomputing.com
Copy

Par exemple :

[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver

[client_redirect]
Description     = SnowflakeDB
Driver          = SnowflakeDSIIDriver
Locale          = en-US
SERVER          = myorg-myconnection.snowflakecomputing.com
Copy

Pilote Node.js

Spécifiez le nom d’hôte pour l’URL de connexion dans l’option de connexion account. Pour plus d’informations sur les paramètres de connexion, voir Référence des options Node.js.

var configuration = {
  username: '<username>',
  password: '<password>',
  account: <organization_name>-<connection_name>.
}

var connection = snowflake.createConnection(configuration)
Copy

Par exemple :

var configuration = {
  username: 'jsmith',
  password: 'mySecurePassword',
  account: myorg-myconnection.
}

var connection = snowflake.createConnection(configuration)
Copy

Pilote Go Snowflake

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre Account. Pour plus d’informations, voir Pilote Go Snowflake.

cfg := &Config{
  Account: "<organization_name>-<connection_name>",
  User: "<username>",
  Password: "<password>"
}

dsn, err := DSN(cfg)
Copy

Par exemple :

cfg := &Config{
  Account: "myorg-myconnection",
  User: "jsmith",
  Password: "mySecurePassword"
}

dsn, err := DSN(cfg)
Copy

Snowpark

Snowpark Python

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre de connexion account du dictionnaire Python (dict) utilisé pour créer une session. Pour plus d’informations sur la création d’une session, voir Création d’une session pour Snowpark Python.

connection_parameters = {
  "account": "<organization_name>-<connection_name>",
  "user": "<snowflake_user>",
  "password": "<snowflake_password>"
}
Copy

Par exemple :

connection_parameters = {
  "account": "myorg-myconnection",
  "user": "jsmith",
  "password": "mySecurePassword"
}
Copy
Snowpark Java

Spécifiez l’URL de connexion dans la propriété URL du fichier de propriétés ou Map que vous utilisez pour établir la session. Pour plus d’informations sur la création d’une session, voir Création d’une session pour Snowpark Java.

# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Copy

Par exemple :

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Copy
Snowpark Scala

Spécifiez l’URL de connexion dans la propriété URL du fichier de propriétés ou Map que vous utilisez pour établir la session. Pour plus d’informations sur la création d’une session, voir Création d’une session pour Snowpark Scala.

# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Copy

Par exemple :

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Copy

Authentification et redirection des clients

Les utilisateurs doivent être provisionnés dans le compte source et sur chaque compte cible si les intégrations de sécurité ne sont pas répliquées.

Authentification fédérée et SSO

Configurez l’authentification fédérée séparément dans chaque compte cible. Fournissez les détails du fournisseur d’identité (IdP) en utilisant les options de configuration dans Configuration de Snowflake pour l’utilisation de l’authentification fédérée :

Note

Snowflake recommande de configurer votre fournisseur d’identité conforme SAML 2.0 (IdP) avec l’URL de connexion plutôt qu’une URL de compte afin que les utilisateurs soient redirigés vers le bon compte en cas de basculement.

OAuth

Configurez un objet d’intégration de sécurité pour OAuth dans chaque compte cible. L’objet d’intégration de sécurité doit être identique au même objet dans le compte source. Pour obtenir des instructions, reportez-vous à la section appropriée :

Pour récupérer les propriétés de l’intégration de sécurité, interrogez la commande DESCRIBE INTEGRATION pour chaque intégration de sécurité dans le compte source. Ensuite, recréez chaque intégration de sécurité dans un compte cible en exécutant la commande CREATE INTEGRATION.

Comportement de redirection OAuth

Si vous utilisez Snowflake OAuth pour authentifier une connexion client et que vous vous connectez à Snowflake à l’aide d’une URL de connexion, vous êtes invité à vous réauthentifier si l’URL de connexion est redirigée vers un autre compte (par exemple, en cas de basculement). Les jetons OAuth de Snowflake sont valables pour une utilisation dans un compte spécifique. Lorsqu’une URL de connexion est mise à jour pour pointer vers un compte dans une région différente, le jeton OAuth existant devient non valide.

Dans le cas d’un basculement, lorsque l’URL de connexion est mise à jour vers le nouveau compte, le client se déconnecte avec une erreur invalid OAuth access token. Vous devez vous ré-authentifier et consentir aux autorisations pour rétablir la connexion.

Note

Vous ne serez pas invité à vous réauthentifier lorsque l’URL de connexion est mise à jour vers un nouveau compte si l’intégration de sécurité OAuth est répliquée vers ce compte. Pour plus d’informations, reportez-vous à Réplication des intégrations de sécurité OAuth.

Rediriger les connexions du client

En cas de panne de service dans la région où se trouve la connexion primaire, redirigez la connexion du client vers un compte qui stocke une connexion secondaire.

Promouvoir une connexion secondaire pour servir de connexion primaire

Le lancement de la redirection implique la promotion d’une connexion secondaire dans une région disponible pour servir de connexion primaire en utilisant ALTER CONNECTION. Simultanément, l’ancienne connexion primaire devient une connexion secondaire.

Exécutez les instructions SQL de cette section dans le compte cible contenant la connexion secondaire actuelle que vous promouvez.

Exemple :

-- view all connections
SHOW CONNECTIONS;

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+

-- promote the secondary connection to serve as the primary connection
ALTER CONNECTION myconnection PRIMARY;

-- verify that the former secondary connection was promoted successfully
SHOW CONNECTIONS;

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Copy

Modification des paramètres DNS pour la connectivité privée au service Snowflake

Pour rediriger les connexions des clients vers un compte secondaire, votre administrateur réseau doit modifier le paramètre DNS créé dans Configuration des paramètres DNS pour la connectivité privée au service Snowflake.

En utilisant un outil fourni par votre fournisseur de DNS, modifiez le paramètre DNS de l’URL de connexion.

Définissez le nom d’hôte de destination comme l’URL du compte Snowflake complet pour le compte qui stocke votre nouvelle connexion primaire, y compris les segments supplémentaires qui identifient la région et la plate-forme Cloud où votre compte est hébergé et la prise en charge de AWS PrivateLink, Azure Private Link ou Google Cloud Private Service Connect. Il s’agit du nom du compte où les connexions des clients à l’URL de connexion seront désormais redirigées. Veillez à inclure l’URL OCSP de la connectivité privée lorsque vous mettez à jour les paramètres DNS.

Par exemple :

myaccount1.us-east-1.privatelink.snowflakecomputing.com.
ocsp.myaccount1.us-east-1.privatelink.snowflakecomputing.com.
Copy

(Notez le point final, qui doit être inclus.)

Note

Vous pouvez configurer la connectivité privée et la redirection des clients pour qu’elles fonctionnent avec Snowsight. Assurez-vous que vos mises à jour DNS incluent les valeurs Snowsight de la sortie de la fonction SYSTEM$GET_PRIVATELINK_CONFIG. Pour plus de détails, reportez-vous à connectivité privée et Snowsight.

Vérification de la mise à jour de l’URL de connexion

Pour vérifier que l’URL de connexion a été mise à jour, vous pouvez confirmer la région de votre connexion actuelle. Utilisez l’URL de connexion pour vous connecter à Snowflake et exécuter la fonction CURRENT_REGION.

SELECT CURRENT_REGION();
Copy

Modifier une connexion

Vous pouvez modifier les comptes cibles d’une connexion après l’avoir créée à l’aide de Snowsight ou SQL.

Modifier les comptes cibles pour une connexion à l’aide de Snowsight

Vous pouvez modifier le compte cible d’une connexion après l’avoir créée, mais vous ne pouvez pas modifier le nom de la connexion.

Note

  • Pour modifier une connexion, vous devez être connecté en tant qu’utilisateur ayant le rôle ACCOUNTADMIN aux comptes suivants :

    • Le compte source avec la connexion principale.

    • Le compte cible actuel avec la connexion secondaire.

    • Le nouveau compte cible que vous souhaitez ajouter pour la connexion principale.

  • Vous ne pouvez ajouter qu’un seul compte cible pour une connexion principale en utilisant Snowsight. Pour ajouter des comptes cibles supplémentaires, utilisez la commande ALTER CONNECTION.

  1. Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.

  2. Sélectionnez Client Redirect.

  3. Localisez la connexion que vous souhaitez modifier. Sélectionnez le menu More () dans la dernière colonne de la ligne.

Modifier les comptes cibles d’une connexion à l’aide de SQL

Vous pouvez ajouter plusieurs comptes cibles pour une connexion principale à l’aide de la commande ALTER CONNECTION. Pour un exemple, voir Exemples.

Supprimer une connexion

Vous pouvez supprimer une connexion en utilisant Snowsight ou SQL.

Supprimer une connexion à l’aide de Snowsight

Pour supprimer une connexion, vous devez vous connecter en tant qu’utilisateur ayant le rôle ACCOUNTADMIN sur le compte source avec la connexion principale.

  1. Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.

  2. Sélectionnez Client Redirect.

  3. Localisez la connexion que vous souhaitez supprimer. Sélectionnez le menu More () dans la dernière colonne de la ligne.

  4. Sélectionnez Drop, puis Drop Connection.

Supprimer une connexion en utilisant SQL

Vous pouvez utiliser la commande DROP CONNECTION pour supprimer une connexion.

  1. Supprimez toutes les connexions secondaires dans les comptes cibles.

  2. Supprimez la connexion principale dans le compte source.

Pour un exemple, voir Exemples.

Surveillance de la redirection des clients

Vous pouvez surveiller les connexions et l’utilisation de la redirection des clients pour les comptes d’une organisation à l’aide de Snowsight ou SQL.

Surveiller la redirection des clients à l’aide de Snowsight

Note

  • Seul un utilisateur ayant le rôle ACCOUNTADMIN peut voir les détails de la connexion en utilisant Snowsight.

  • Vous devez être connecté au compte cible en tant qu’utilisateur ayant le rôle ACCOUNTADMIN. Si ce n’est pas le cas, vous serez invité à vous connecter.

Pour voir les détails de la connexion de redirection des clients, procédez comme suit :

  1. Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.

  2. Sélectionnez Replication puis Client Redirect.

  3. S’il n’y a pas d’entrepôt actif pour la session, vous serez invité à sélectionner un entrepôt.

Surveillez une connexion spécifique à l’aide de recherches et de filtres.

  • Vous pouvez effectuer une recherche par nom de connexion. Dans le champ (de recherche) Search icon, saisissez le nom de la connexion pour filtrer les résultats.

  • Choisissez Redirecting pour filtrer les résultats par connexion primaire (To) ou secondaire (From) .

  • Choisissez le menu Account icon (comptes) pour filtrer les résultats par nom de compte.

Vous pouvez consulter les informations suivantes à propos de chaque connexion :

Colonne

Description

Name

Nom de la connexion.

Redirecting

Indique si la connexion est un compte cible To ou un compte source From et le nom du compte.

Si cette colonne contient destinations disponibles, il n’y a pas de connexions secondaires. Le nombre de destinations disponibles indique le nombre de comptes cibles vers lesquels la connexion primaire peut être répliquée.

S’il y a plus d’une connexion secondaire, chaque connexion est détaillée dans une ligne distincte.

Usage

Affiche le nombre de fois où la connexion a été utilisée au cours des 7 derniers jours. Vous devez vous connecter au compte cible pour voir les données d’utilisation de ce compte.

Connection URL

L’URL de connexion à utiliser avec les clients Snowflake. Sélectionnez l’URL de connexion dans la colonne pour copier l’URL.

Surveiller la redirection des clients à l’aide de SQL

Vous pouvez voir les détails de la connexion et surveiller l’utilisation à l’aide de la commande SHOW CONNECTIONS et de la fonction LOGIN_HISTORY.

Voir les détails de connexion

Vous pouvez récupérer les noms et les détails des connexions à l’aide de la commande SHOW CONNECTIONS:

SHOW CONNECTIONS;
Copy

Renvoie :

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2023-07-05 08:57:11.143 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2023-07-08 09:15:11.143 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|

Vérifier de l’URL de connexion utilisée par vos utilisateurs

Interrogez la famille LOGIN_HISTORY , LOGIN_HISTORY_BY_USER de fonctions de table pour voir l’activité de connexion de vos utilisateurs au cours des 7 derniers jours. La sortie indique quels utilisateurs et clients Snowflake ont utilisé une URL de connexion. Les colonnes REPORTED_CLIENT_TYPE et REPORTED_CLIENT_VERSION affichent le client et la version utilisés pour chaque connexion à Snowflake, et la colonne CONNECTION affiche l’URL de connexion utilisée, le cas échéant.

Note

Si un client s’authentifie par le biais d’un fournisseur d’identité (IdP) qui est configuré avec l’URL de compte plutôt qu’avec l’URL de connexion, l’IdP dirige le client vers l’URL de compte une fois l’authentification terminée. La colonne CONNECTION de cet événement de connexion est NULL. Voir Authentification et redirection des clients (dans cette rubrique).

Par exemple, récupérez au maximum 100 événements de connexion de chaque utilisateur que votre rôle actuel est autorisé à surveiller durant les 72 dernières heures :

SELECT event_timestamp, user_name, client_ip, reported_client_type, is_success, connection
  FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(
    DATEADD('HOURS',-72,CURRENT_TIMESTAMP()),
    CURRENT_TIMESTAMP()))
  ORDER BY EVENT_TIMESTAMP;
Copy

Limites actuelles de la redirection des clients

  • Les connexions clients utilisant une URL de connexion et une intégration OAuth nécessitent une nouvelle authentification lorsque l’URL de connexion est mise à jour pour pointer vers un compte différent si l’intégration de sécurité OAuth n’est pas répliquée vers ce compte. Pour plus d’informations, reportez-vous à Comportement de redirection OAuth.

  • La redirection des navigateurs Web peut prendre plusieurs minutes en raison du cache du navigateur.

    Pour vérifier que la redirection fonctionne, connectez-vous à Snowflake avec un client différent.

    Vous pouvez également ouvrir une nouvelle fenêtre de navigateur privée (par exemple, le mode incognito dans Google Chrome) pour éviter les problèmes de mise en cache du navigateur. Notez que certains navigateurs Web en mode privé ou incognito peuvent quand-même mettre des données en cache. Pour éviter d’utiliser le cache du navigateur, fermez toutes les fenêtres et tous les onglets de navigateur privé ouverts avant d’ouvrir une nouvelle fenêtre de navigateur privé.

  • Vous ne pouvez ajouter qu’un seul compte cible en utilisant Snowsight. Pour ajouter plusieurs comptes cibles à la liste des comptes de basculement autorisés, utilisez la commande ALTER CONNECTION… ENABLE FAILOVER TO ACCOUNTS.