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¶
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.
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.
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.
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
.
Une interruption de service dans Region A
entraîne l’échec des connexions des clients :
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
.
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;
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;
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;
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;
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.
Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.
Sélectionnez Client Redirect.
Sélectionnez + Connection.
Sélectionnez Target Account.
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.
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.
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;
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
versaccount2
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
etmyaccount3
de l’organisationmyorg
à stocker chacun une connexion secondaire pour la connexionmyconnection
:ALTER CONNECTION myconnection ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
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.
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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
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 primairemyorg.myaccount1.myconnection
. AprèsAS 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;
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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
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 :
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
etmyaccount2
.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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
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 dansmyaccount1
oumyaccount2
. Cette liste contient déjà l’URL de connexion formatée avec le segmentprivatelink
(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.Enregistrez la valeur de la colonne CONNECTION_URL et créez deux URLs pour prendre en charge la connectivité privée et OCSP.
Ajoutez un segment
privatelink
à l’URL juste avantsnowflakecomputing.com
(myorg-myconnection.privatelink.snowflakecomputing.com
, dans cet exemple).Ajoutez un segment
ocsp
au début de l’URL (ocsp.myorg-myconnection.privatelink.snowflakecomputing.com
, dans cet exemple).
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.
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.
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 (dans cette rubrique)
Modification des paramètres DNS pour la connectivité privée au service Snowflake (dans cette rubrique)
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>
Par exemple :
myorg-myconnection
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/
Par exemple :
https://myorg-myconnection.snowflakecomputing.com/
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>
Par exemple :
accountname = myorg-myconnection
username = jsmith
password = mySecurePassword
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>
)
Par exemple :
con = snowflake.connector.connect (
account = myorg-myconnection
user = jsmith
password = mySecurePassword
)
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>
Par exemple :
jdbc:snowflake://myorg-myconnection.snowflakecomputing.com/?user=jsmith&password=mySecurePassword
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
Par exemple :
[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver
[client_redirect]
Description = SnowflakeDB
Driver = SnowflakeDSIIDriver
Locale = en-US
SERVER = myorg-myconnection.snowflakecomputing.com
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)
Par exemple :
var configuration = {
username: 'jsmith',
password: 'mySecurePassword',
account: myorg-myconnection.
}
var connection = snowflake.createConnection(configuration)
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)
Par exemple :
cfg := &Config{
Account: "myorg-myconnection",
User: "jsmith",
Password: "mySecurePassword"
}
dsn, err := DSN(cfg)
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>"
}
Par exemple :
connection_parameters = {
"account": "myorg-myconnection",
"user": "jsmith",
"password": "mySecurePassword"
}
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
Par exemple :
# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
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
Par exemple :
# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
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 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
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.
(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();
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.
Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.
Sélectionnez Client Redirect.
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.
Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.
Sélectionnez Client Redirect.
Localisez la connexion que vous souhaitez supprimer. Sélectionnez le menu More (…) dans la dernière colonne de la ligne.
Sélectionnez Drop, puis Drop Connection.
Supprimer une connexion en utilisant SQL¶
Vous pouvez utiliser la commande DROP CONNECTION pour supprimer une connexion.
Supprimez toutes les connexions secondaires dans les comptes cibles.
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 :
Connectez-vous à Snowsight et naviguez jusqu’à Admin » Accounts.
Sélectionnez Replication puis Client Redirect.
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) , 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 (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;
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;
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.