Dans ce tutoriel, vous allez créer une vue autorisée dans BigQuery utilisée par vos analystes de données. Les vues autorisées vous permettent de partager des résultats de requête avec des utilisateurs et des groupes particuliers sans leur donner accès aux données sources sous-jacentes. L'accès aux données sources est accordé à la vue, et non à un utilisateur ou à un groupe. Vous pouvez également utiliser la requête SQL de la vue pour exclure des colonnes et des champs des résultats de la requête.
Une autre approche consiste à configurer des contrôles d'accès au niveau des colonnes sur les données sources, puis à accorder à vos utilisateurs l'accès à une vue qui interroge les données contrôlées. Pour en savoir plus sur les contrôles d'accès au niveau des colonnes, consultez la page Présentation du contrôle des accès au niveau des colonnes.
Si plusieurs vues autorisées accèdent au même ensemble de données source, vous pouvez autoriser l'ensemble de données qui les contient au lieu d'autoriser une vue individuelle.
Objectifs
- Créez un ensemble de données contenant vos données sources.
- Exécutez une requête pour charger des données dans une table de destination de l'ensemble de données source.
- Créez un ensemble de données pour contenir votre vue autorisée.
- Créez une vue autorisée à partir d'une requête SQL qui limite les colonnes que vos analystes de données peuvent voir dans les résultats de la requête.
- Accordez à vos analystes de données l'autorisation d'exécuter des tâches de requête.
- Accordez à vos analystes de données l'accès à l'ensemble de données contenant la vue autorisée.
- Accordez à la vue autorisée l'accès à l'ensemble de données source.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
- Assurez-vous de disposer des autorisations nécessaires pour effectuer les tâches décrites dans ce document.
Rôles requis
Si vous créez un projet, vous en êtes le propriétaire et vous disposez de toutes les autorisations IAM requises pour suivre ce tutoriel.
Si vous utilisez un projet existant, vous avez besoin du rôle suivant.
Make sure that you have the following role or roles on the project:
- BigQuery Studio Admin (
roles/bigquery.studioAdmin
)
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Accéder à IAM - Sélectionnez le projet.
- Cliquez sur Accorder l'accès.
-
Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.
- Dans la liste Sélectionner un rôle, sélectionnez un rôle.
- Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
- Cliquez sur Enregistrer.
bigquery.datasets.create
pour créer l'ensemble de données source et celui qui contient la vue autorisée.bigquery.tables.create
pour créer la table qui stocke les données sources et pour créer la vue autorisée.bigquery.jobs.create
pour exécuter la tâche de requête qui charge les données dans la table source.bigquery.datasets.getIamPolicy
etbigquery.datasets.get
pour obtenir des autorisations IAM pour l'ensemble de données source et l'ensemble de données contenant la vue autorisée.bigquery.datasets.setIamPolicy
etbigquery.datasets.update
pour mettre à jour les autorisations IAM de l'ensemble de données source et de l'ensemble de données contenant la vue autorisée.
Pour en savoir plus sur les rôles dans BigQuery, consultez la section Rôles IAM prédéfinis.
Autorisations requises
Pour créer les ressources utilisées dans ce tutoriel, vous devez disposer des autorisations suivantes. Le rôle prédéfini Administrateur BigQuery Studio accorde toutes ces autorisations.
Pour en savoir plus sur les autorisations IAM dans BigQuery, consultez la page Autorisations BigQuery.
Créer un ensemble de données pour stocker vos données sources
Commencez par créer un ensemble de données pour y stocker les données sources.
Pour créer votre ensemble de données source, choisissez l'une des options suivantes:
Console
Accédez à la page BigQuery.
Dans le volet Explorer, à côté du projet dans lequel vous souhaitez créer l'ensemble de données, cliquez sur > Créer un ensemble de données.
Afficher les actionsSur la page Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
github_source_data
.Dans le champ Type d'emplacement, vérifiez que l'option Multirégional est sélectionnée.
Pour Multirégional, sélectionnez États-Unis ou UE. Toutes les ressources que vous créez dans ce tutoriel doivent se trouver dans la même zone multirégionale.
Cliquez sur Créer un ensemble de données.
SQL
Utilisez l'instruction LDD CREATE SCHEMA
:
Dans la console Google Cloud, accédez à la page BigQuery Studio.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE SCHEMA github_source_data;
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Créer une table et charger vos données sources
Une fois l'ensemble de données source créé, vous remplissez une table en enregistrant les résultats d'une requête SQL dans une table de destination. La requête extrait des données de l'ensemble de données public GitHub.
Console
Accédez à la page BigQuery.
Dans Query editor (éditeur de requête), saisissez la requête suivante :
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;
Cliquez sur Plus et sélectionnez Paramètres de requête.
Destination : sélectionnez Définir une table de destination pour les résultats de la requête.
Dans le champ Ensemble de données, saisissez
PROJECT_ID.github_source_data
.Remplacez
PROJECT_ID
par l'ID du projet.Dans le champ ID de table, saisissez
github_contributors
.Cliquez sur Enregistrer.
Cliquez sur Exécuter.
Une fois la requête terminée, dans le volet Explorer, développez
github_source_data
, puis cliquez surgithub_contributors
.Pour vérifier que les données ont bien été écrites dans la table, cliquez sur l'onglet Aperçu.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Créer un ensemble de données pour stocker votre vue autorisée
Après avoir créé votre ensemble de données source, vous allez créer un ensemble de données distinct pour stocker la vue autorisée que vous partagerez avec vos analystes de données. Plus tard, vous accorderez à la vue autorisée l'accès aux données de l'ensemble de données source. Vos analystes de données pourront accéder à la vue autorisée, mais pas aux données sources.
Les vues autorisées doivent être créées dans un ensemble de données différent de celui des données sources. De cette façon, les propriétaires de données peuvent autoriser les utilisateurs à accéder à la vue autorisée sans accorder simultanément l'accès aux données sous-jacentes. L'ensemble de données des données source et l'ensemble de données de la vue autorisée doivent se trouver dans le même emplacement régional.
Pour créer un ensemble de données dans lequel stocker votre vue, choisissez l'une des options suivantes:
Console
Accédez à la page BigQuery.
Dans le panneau Explorer, sélectionnez le projet dans lequel vous souhaitez créer l'ensemble de données.
Développez l'option
Afficher les actions, puis cliquez sur Créer un ensemble de données.Sur la page Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
shared_views
.Dans le champ Type d'emplacement, vérifiez que l'option Multirégional est sélectionnée.
Pour Multirégional, sélectionnez États-Unis ou UE. Toutes les ressources que vous créez dans ce tutoriel doivent se trouver dans la même zone multirégionale.
Cliquez sur Créer un ensemble de données.
SQL
Utilisez l'instruction LDD CREATE SCHEMA
:
Dans la console Google Cloud, accédez à la page BigQuery Studio.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE SCHEMA shared_views;
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Créer la vue autorisée dans le nouvel ensemble de données
Dans le nouvel ensemble de données, créez la vue que vous souhaitez autoriser. Il s'agit de la vue que vous partagerez avec vos analystes de données. Cette vue est créée à l'aide d'une requête SQL qui exclut les colonnes que les analystes de données ne doivent pas voir.
La table source github_contributors
contient deux champs de type RECORD
: author
et committer
. Pour ce tutoriel, votre vue autorisée exclut toutes les données de l'auteur, à l'exception de son nom, et toutes les données du validateur, à l'exception de son nom.
Pour créer cette vue dans le nouvel ensemble de données, choisissez l'une des options suivantes:
Console
Accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez la requête suivante.
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Remplacez
PROJECT_ID
par l'ID du projet.Cliquez sur Enregistrer > Enregistrer la vue.
Dans la boîte de dialogue Enregistrer la vue, procédez comme suit:
Pour le champ Projet, vérifiez que votre projet est sélectionné.
Dans le champ Ensemble de données, saisissez
shared_views
.Pour Table, saisissez
github_analyst_view
.Cliquez sur Enregistrer.
SQL
Utilisez l'instruction LDD CREATE VIEW
:
Dans la console Google Cloud, accédez à la page BigQuery Studio.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
Remplacez
PROJECT_ID
par l'ID du projet.Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Accorder à vos analystes de données l'autorisation d'exécuter des tâches de requête
Pour interroger la vue, vos analystes de données doivent disposer de l'autorisation bigquery.jobs.create
afin de pouvoir exécuter des tâches de requête. Le rôle bigquery.studioUser
inclut l'autorisation bigquery.jobs.create
. Le rôle bigquery.studioUser
n'autorise pas les utilisateurs à afficher ni à interroger la vue autorisée. Plus tard, vous accorderez à vos analystes de données l'autorisation d'accéder à la vue.
Pour attribuer au groupe d'analystes de données le rôle bigquery.studioUser
au niveau du projet, procédez comme suit:
Dans la console Google Cloud, accédez à la page IAM.
Assurez-vous que votre projet est sélectionné dans le sélecteur de projet.
Cliquez sur
Accorder l'accès.Dans la boîte de dialogue Accorder l'accès à, procédez comme suit:
Dans le champ Nouveaux comptes principaux, saisissez le groupe contenant vos analystes de données. Exemple :
data_analysts@example.com
Dans le champ Sélectionner un rôle, recherchez le rôle Utilisateur BigQuery Studio et sélectionnez-le.
Cliquez sur Enregistrer.
Accorder à vos analystes de données l'autorisation d'interroger la vue autorisée
Pour que vos analystes de données puissent interroger la vue, ils doivent disposer du rôle bigquery.dataViewer
au niveau de l'ensemble de données ou de la vue.
Accorder ce rôle au niveau de l'ensemble de données permet à vos analystes d'accéder à toutes les tables et vues de l'ensemble de données. Étant donné que l'ensemble de données créé dans ce tutoriel ne contient qu'une seule vue autorisée, vous accordez l'accès au niveau de l'ensemble de données. Si vous avez un ensemble de vues autorisées auxquelles vous devez accorder l'accès, envisagez plutôt d'utiliser un ensemble de données autorisé.
Le rôle bigquery.studioUser
que vous avez précédemment accordé à vos analystes de données leur donne les autorisations requises pour créer des tâches de requête. Toutefois, ils ne peuvent pas interroger la vue, sauf s'ils disposent également d'un accès bigquery.dataViewer
à la vue autorisée ou à l'ensemble de données qui la contient.
Pour accorder à vos analystes de données l'accès bigquery.dataViewer
à l'ensemble de données contenant la vue autorisée, procédez comme suit:
Console
Accédez à la page BigQuery.
Dans le volet Explorateur, sélectionnez l'ensemble de données
shared_views
.Cliquez sur > Autorisations.
PartageDans le volet Autorisations de partage, cliquez sur Ajouter un compte principal.
Pour Nouveaux comptes principaux, saisissez le groupe contenant vos analystes de données (par exemple,
data_analysts@example.com
).Cliquez sur Sélectionner un rôle, puis sélectionnez BigQuery > Lecteur de données BigQuery.
Cliquez sur Enregistrer.
Cliquez sur Fermer.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Autoriser la vue à accéder à l'ensemble de données source
Après avoir créé des contrôles d'accès pour l'ensemble de données contenant la vue autorisée, vous accordez à la vue autorisée l'accès à l'ensemble de données source. Cette autorisation permet à la vue, mais pas à votre groupe d'analystes de données, d'accéder aux données sources.
Pour accorder à la vue autorisée l'accès aux données source, choisissez l'une des options suivantes:
Console
Accédez à la page BigQuery.
Dans le volet Explorateur, sélectionnez l'ensemble de données
github_source_data
.Cliquez sur > Autoriser les vues.
PartageDans le volet Vues autorisées, saisissez
PROJECT_ID.shared_views.github_analyst_view
pour Vue autorisée.Remplacez PROJECT_ID par l'ID du projet.
Cliquez sur Ajouter une autorisation.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Vérifier la configuration
Une fois la configuration effectuée, un membre de votre groupe d'analystes de données (par exemple, data_analysts
) peut la vérifier en interrogeant la vue.
Pour vérifier la configuration, un analyste de données doit exécuter la requête suivante:
Accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
SELECT * FROM `
PROJECT_ID
.shared_views.github_analyst_view`;Remplacez
PROJECT_ID
par l'ID du projet.Cliquez sur
Exécuter.
Les résultats de la requête sont semblables aux suivants. Seuls le nom de l'auteur et le nom du contributeur sont visibles dans les résultats.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Code source complet
Voici le code source complet du tutoriel à titre de référence.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
Console
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Vous pouvez également supprimer les ressources individuelles utilisées dans ce tutoriel:
Supprimez l'ensemble de données contenant la vue autorisée.
Supprimez la table dans l'ensemble de données source.
Étant donné que vous avez créé les ressources utilisées dans ce tutoriel, aucune autorisation supplémentaire n'est requise pour les supprimer.
Étape suivante
- Pour en savoir plus sur le contrôle des accès dans BigQuery, consultez la page Rôles et autorisations IAM BigQuery.
- Pour en savoir plus sur les vues BigQuery, consultez la page Présentation des vues logiques.
- Pour en savoir plus sur les vues autorisées, consultez la section Vues autorisées.
- Pour découvrir les concepts de base du contrôle des accès, consultez la présentation d'IAM.
- Pour savoir comment gérer le contrôle des accès, consultez la section Gérer les stratégies.