Configuration d’un compte de lecteur

Un compte de lecteur venant d’être créé ne contient qu’un seul utilisateur qui sert d’administrateur pour l’ensemble du compte.

Pour configurer le compte, l’administrateur du compte doit créer un ensemble minimum d’objets supplémentaires dans le compte, y compris des utilisateurs, des rôles personnalisés (si nécessaire), des entrepôts virtuels et une ou plusieurs bases de données partagées (pour les données partagées par le compte de fournisseur).

Ce chapitre fournit une vue d’ensemble de toutes ces tâches de configuration, obligatoires et facultatives.

Note

Les tâches 2 à 4 doivent être effectuées en tant qu’administrateur de compte. Toutes les tâches restantes peuvent être déléguées à d’autres utilisateurs.

De plus, toutes ces tâches doivent être exécutées dans le compte de lecteur, par opposition au compte de fournisseur.

Dans ce chapitre :

Tâche 1 : Connectez-vous au compte de lecteur en tant qu’administrateur du compte.

Connectez-vous au compte de lecteur à l’aide d’une des interfaces prises en charge ( SnowSQL ou l’interface Web).

Les instructions de ce chapitre supposent que vous utilisez SQL pour effectuer ces tâches, soit dans SnowSQL , soit en utilisant une feuille de calcul (dans l’interface Web). Cependant, les tâches peuvent être effectuées dans n’importe quelle interface Snowflake prise en charge.

Astuce

N’oubliez pas de définir ACCOUNTADMIN comme rôle à utiliser. Vous pouvez définir ce rôle soit pendant la connexion, soit après dans la session active.

Si vous utilisez une feuille de calcul (dans l’interface Web) pour effectuer ces tâches, définissez le rôle dans le contexte de la feuille de calcul.

Tâche 2 : Création de rôles personnalisés (facultatif)

Les rôles permettent un contrôle précis des tâches que les utilisateurs du compte de lecteur peuvent effectuer. Vous pouvez utiliser les rôles pour :

  • Spécifier des utilisateurs qui peuvent interroger les données partagées avec le compte.

  • Accorder le contrôle des entrepôts virtuels à des utilisateurs sélectionnés.

  • Déléguer certaines tâches et responsabilités d’administrateur à des utilisateurs sélectionnés (si désiré).

Chaque compte de lecteur est fourni avec des rôles standard définis par le système (SYSADMIN, SECURITYADMIN, PUBLIC). Si ces rôles ne répondent pas aux conditions d’accès pour les utilisateurs que vous allez créer dans le compte, vous pouvez créer des rôles personnalisés supplémentaires.

Pour plus de détails, voir Contrôle d’accès dans Snowflake.

Tâche 3 : Création d’utilisateurs

Créez les utilisateurs qui se connecteront au compte de lecteur et interrogeront les données partagées avec le compte, et qui effectueront toute autre tâche que vous choisissez d’autoriser.

Dans le cadre du processus de création des utilisateurs, n’oubliez pas d’accorder des rôles, définis par le système ou personnalisés (si vous en avez créés), aux utilisateurs. Les rôles que vous affectez aux utilisateurs déterminent ce qu’ils peuvent faire dans le compte.

Pour plus de détails, voir CREATE USER et GRANT ROLE.

Astuce

Toutes les tâches restantes dans ce chapitre peuvent être effectuées par l’administrateur du compte ou peuvent être déléguées (par le biais de privilèges et de rôles) à d’autres utilisateurs du compte.

Au minimum, nous recommandons les choses suivantes :

  • Attribuer le rôle SECURITYADMIN à au moins un autre utilisateur afin qu’il puisse aider à créer et gérer d’autres utilisateurs et l’accès aux objets dans le compte.

  • Attribuer le rôle SYSADMIN à au moins un autre utilisateur afin qu’il puisse aider à créer et gérer d’autres objets dans le compte (par exemple, des entrepôts virtuels).

Tâche 4 : Création de moniteurs de ressources (facultatif)

Les entrepôts virtuels sont nécessaires pour interroger les données partagées avec le compte de lecteur. En cours d’exécution, les entrepôts virtuels consomment des crédits, qui seront débités sur votre compte de fournisseur.

Si vous souhaitez contrôler la quantité de crédits consommés mensuellement par les entrepôts virtuels dans le compte de lecteur, créez un ou plusieurs moniteurs de ressources et spécifiez s’ils contrôlent :

  • Tous les entrepôts du compte.

  • Les entrepôts individuels.

Pour plus de détails, voir CREATE RESOURCE MONITOR.

Attention

Si vous choisissez d’ignorer cette tâche, les entrepôts du compte de lecteur peuvent consommer un nombre illimité de crédits chaque mois, qui seront débités sur votre compte de fournisseur.

Tâche 5 : Création d’entrepôts virtuels

Pour permettre l’interrogation des objets dans la base de données partagée, vous devez créer au moins un entrepôt virtuel. Vous pouvez créer autant d’entrepôts que vous le souhaitez ou dont vous avez besoin. Cependant, n’oubliez pas que votre compte de fournisseur est responsable de tous les crédits consommés par les entrepôts dans le compte de lecteur. En outre, tenez compte de ce qui suit :

  • Définissez la taille de l’entrepôt de manière appropriée, en évaluant les performances souhaitées de la requête par rapport à la consommation de crédit souhaitée.

  • Assurez-vous que l’entrepôt est réglé sur la suspension automatique lorsqu’il n’est pas utilisé.

Pour plus de détails, voir CREATE WAREHOUSE.

Tâche 6 : Création d’une base de données à partir de chaque partage partagé avec le compte

Un compte de lecteur ne contient pas de données par défaut. Pour consommer des données partagées à partir de votre compte de fournisseur, vous devez utiliser la commande CREATE DATABASE pour créer une base de données à partir de chaque partage partagé avec le compte. Lorsque vous créez la ou les bases de données, vous spécifiez le nom que les autres utilisateurs du compte de lecteur utiliseront pour interroger les données partagées.

Par exemple, si votre compte de fournisseur est nommé ab12345 et que vous avez partagé deux partages nommés share1 et share2 avec ce compte de lecteur :

CREATE DATABASE shared_db1 FROM SHARE ab12345.share1;

CREATE DATABASE shared_db2 FROM SHARE ab12345.share2;

Tâche 7 : Attribution de privilèges sur les entrepôts virtuels et les bases de données aux rôles

Pour activer l’interrogation des données partagées avec le compte de lecteur, accordez les privilèges suivants aux autres rôles, définis par le système ou personnalisés (le cas échéant), dans le compte :

Vous pouvez accorder des privilèges supplémentaires si vous le souhaitez. Cependant, les privilèges énumérés ci-dessus sont les privilèges minimum requis pour interroger les bases de données partagées dans le compte.

Par exemple, les commandes suivantes accordent les privilèges nécessaires pour deux bases de données nommées shared_db1 et shared_db2, et un entrepôt nommé testing_vw, au rôle PUBLIC. Comme tous les utilisateurs du compte ont automatiquement le rôle PUBLIC, cela permet à tout utilisateur du compte d’utiliser l’entrepôt et d’interroger les bases de données :

GRANT USAGE ON WAREHOUSE testing_vw TO ROLE PUBLIC;

GRANT IMPORTED PRIVILEGES ON DATABASE shared_db1 TO ROLE PUBLIC;

GRANT IMPORTED PRIVILEGES ON DATABASE shared_db2 TO ROLE PUBLIC;

En outre, vous pouvez accorder tous les privilèges sur l’entrepôt testing_vw au rôle SYSADMIN , permettant aux utilisateurs ayant le rôle de démarrer, d’arrêter et de redimensionner l’entrepôt :

GRANT ALL ON VIRTUAL WAREHOUSE testing_vs TO ROLE SYSADMIN;

Pour plus de détails, voir GRANT <privileges> … TO ROLE.

Tâche 8 : Invitation des utilisateurs à se connecter et à réinitialiser leur mot de passe

Comme dernière tâche de configuration, avertissez tous les utilisateurs que vous avez créés que le compte est disponible pour être utilisé.

La façon la plus rapide et la plus simple de le faire est d’utiliser la commande ALTER USER pour réinitialiser le mot de passe de chaque utilisateur. Ceci génère un URL unique pour chaque utilisateur, que vous lui envoyez ensuite. Ils utilisent l’URL pour changer leur mot de passe et se connecter au compte.

Par exemple :

ALTER USER ra_user1 RESET PASSWORD;

ALTER USER ra_user2 RESET PASSWORD;

Important

Chaque URL peut être utilisé seulement une fois et expire après 4 heures. Toutefois, vous pouvez réinitialiser le mot de passe d’un utilisateur aussi souvent que nécessaire.

Pour plus de détails, voir ALTER USER.