Authentification par jeton Snowflake pour Snowflake Postgres¶
Snowflake permet aux utilisateurs de générer des jetons d’accès à courte durée de vie à utiliser pour se connecter aux instances Snowflake Postgres. Au niveau de l’instance, cela est appelé autorisation Snowflake et se fait à l’aide des trois étapes décrites ci-dessous :
Activez l’autorisation Snowflake pour l’instance Snowflake Postgres.
Sur l’instance Snowflake Postgres, créez des mappages entre les utilisateurs Postgres et les utilisateurs Snowflake.
Les utilisateurs Snowflake mappés génèrent ensuite des jetons d’accès à courte durée de vie à utiliser lors de la connexion à l’instance Postgres de Snowflake.
Note
L’authentification par jeton Snowflake pour Snowflake Postgres est une fonctionnalité distincte des méthodes d’authentification Snowflake OAuth Snowflake et jetons d’accès programmatiques.
Création de mappages entre les utilisateurs Postgres et les utilisateurs Snowflake¶
Pour créer un mappage entre un utilisateur Postgres et un utilisateur Snowflake, connectez-vous à votre instance Postgres avec l’utilisateur snowflake_admin et exécutez :
ALTER USER {postgres_user} SET snowflake_user = '{snowflake_user}';
Les noms {postgres_user} et {snowflake_user} fournis dans l’instruction ci-dessus seront lus comme insensibles à la casse. Si la sensibilité à la casse est nécessaire, mettez les noms entre guillemets doubles. Par exemple, pour mapper un utilisateur Postgres nommé Casey à un utilisateur Snowflake du même nom :
ALTER USER "Casey" SET snowflake_user = '"Casey"';
Pour supprimer un mappage entre un utilisateur Postgres et un utilisateur Snowflake, connectez-vous à votre instance Postgres avec l’utilisateur snowflake_admin et exécutez :
ALTER USER {postgres_user} RESET snowflake_user;
Pour voir les mappages existants entre les utilisateurs Postgres et les utilisateurs Snowflake, connectez-vous à votre instance Postgres avec l’utilisateur snowflake_admin et interrogez la vue SNOWFLAKE_AUTH.IDENTITY_MAPPING Vue Postgres.
Note
Les utilisateurs Postgres avec des mappages d’utilisateurs Snowflake peuvent uniquement se connecter avec des jetons d’accès à courte durée de vie générés. Ils ne peuvent pas se connecter avec un mot de passe Postgres, et leurs mots de passe Postgres ne peuvent pas être modifiés. Pour réactiver la fonctionnalité de connexion par mot de passe standard pour un utilisateur Postgres donné, vous devez supprimer son mappage vers un utilisateur Snowflake.
Création de jetons d’accès à courte durée de vie pour les utilisateurs Snowflake mappés¶
Les propriétaires d’instances Snowflake Postgres et les utilisateurs Snowflake avec le privilège USAGE accordé à une instance donnée peuvent créer eux-mêmes des mots de passe de jetons d’accès à courte durée de vie sur une base par instance pour les instances qui ont l’autorisation Snowflake activée selon les instructions ci-dessus dans Activation et désactivation de l’autorisation Snowflake sur les instances Snowflake Postgres.
Dans le menu de navigation, sélectionnez Postgres.
Sélectionnez votre instance.
Dans le menu Manage en haut à droite, sélectionnez Regenerate token.
Dans la boîte de dialogue Regenerate token qui s’affiche, saisissez le nom d’un utilisateur Postgres qui a été mappé à votre utilisateur Snowflake, puis sélectionnez Acknowledge & continue.
Copiez le jeton d’accès à courte durée de vie ou l’URI Postgres à utiliser pour établir de nouvelles connexions à l’instance Snowflake Postgres dans les 15 prochaines minutes.
Utilisez la fonction GENERATE_POSTGRES_ACCESS_TOKEN_FOR_USER.
SNOWFLAKE_AUTH.IDENTITY_MAPPING Vue Postgres¶
Cette vue Snowflake Postgres peut être utilisée pour interroger une liste de tous les mappages entre les utilisateurs Postgres et les utilisateurs Snowflake sur l’instance.
Note
Cette vue ne peut être interrogée qu’à l’intérieur des instances Snowflake Postgres et ne peut pas être interrogée directement à partir de Snowflake.
Colonnes¶
Nom de la colonne |
Type de données |
Description |
|---|---|---|
postgres_role |
name |
Nom de l’utilisateur Postgres mappé |
snowflake_identity |
text |
Identité de l’utilisateur Snowflake sous la forme USER:#, où # est la valeur |