En este tutorial, creará una vista autorizada en BigQuery que usarán sus analistas de datos. Las vistas autorizadas te permiten compartir resultados de consultas con usuarios y grupos concretos sin darles acceso a los datos de origen subyacentes. Se da acceso a la vista a los datos de origen en lugar de a un usuario o grupo. También puede usar la consulta SQL de la vista para excluir columnas y campos de los resultados de la consulta.
Otra opción para usar una vista autorizada sería configurar controles de acceso a nivel de columna en los datos de origen y, a continuación, dar a los usuarios acceso a una vista que consulte los datos con control de acceso. Para obtener más información sobre los controles de acceso a nivel de columna, consulta Introducción al control de acceso a nivel de columna.
Si tienes varias vistas autorizadas que acceden al mismo conjunto de datos de origen, puedes autorizar el conjunto de datos que contiene las vistas en lugar de autorizar una vista concreta.
Objetivos
- Crea un conjunto de datos que contenga los datos de origen.
- Ejecuta una consulta para cargar datos en una tabla de destino del conjunto de datos de origen.
- Crea un conjunto de datos que contenga tu vista autorizada.
- Crea una vista autorizada a partir de una consulta de SQL que restrinja las columnas que pueden ver tus analistas de datos en los resultados de la consulta.
- Concede permiso a tus analistas de datos para ejecutar trabajos de consulta.
- Concede a tus analistas de datos acceso al conjunto de datos que contiene la vista autorizada.
- Concede a la vista autorizada acceso al conjunto de datos de origen.
Costes
En este documento, se utilizan los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costes basada en el uso previsto,
utiliza la calculadora de precios.
Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.
Antes de empezar
- 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Asegúrate de que tienes los permisos necesarios para realizar las tareas descritas en este documento.
Ve a la página BigQuery.
En el panel Explorador, junto al proyecto en el que quieras crear el conjunto de datos, haz clic en > Crear conjunto de datos.
Ver accionesEn la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, introduce
github_source_data
.En Tipo de ubicación, comprueba que esté seleccionada la opción Multirregión.
En Multirregión, elige EE. UU. o UE. Todos los recursos que crees en este tutorial deben estar en la misma ubicación multirregional.
Haz clic en Crear conjunto de datos.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE SCHEMA github_source_data;
Haz clic en
Ejecutar.Ve a la página BigQuery.
En el editor de consultas, escribe la siguiente consulta:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;
Haz clic en Más y selecciona Configuración de la consulta.
En Destino, selecciona Definir una tabla de destino para los resultados de las consultas.
En Conjunto de datos, introduce
PROJECT_ID.github_source_data
.Sustituye
PROJECT_ID
por el ID del proyecto.En ID de tabla, introduce
github_contributors
.Haz clic en Guardar.
Haz clic en Ejecutar.
Cuando se complete la consulta, en el panel Explorador, expande
github_source_data
y, a continuación, haz clic engithub_contributors
.Para comprobar que los datos se han escrito en la tabla, haga clic en la pestaña Vista previa.
Ve a la página BigQuery.
En el panel Explorador, selecciona el proyecto en el que quieras crear el conjunto de datos.
Abre la opción
Ver acciones y haz clic en Crear conjunto de datos.En la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, introduce
shared_views
.En Tipo de ubicación, comprueba que esté seleccionada la opción Multirregión.
En Multirregión, elige EE. UU. o UE. Todos los recursos que crees en este tutorial deben estar en la misma ubicación multirregional.
Haz clic en Crear conjunto de datos.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE SCHEMA shared_views;
Haz clic en
Ejecutar.Ve a la página BigQuery.
En el editor de consultas, escribe la siguiente consulta.
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Sustituye
PROJECT_ID
por el ID del proyecto.Haz clic en Guardar > Guardar vista.
En el cuadro de diálogo Guardar vista, haz lo siguiente:
En Proyecto, comprueba que esté seleccionado el proyecto.
En Conjunto de datos, introduce
shared_views
.En Tabla, escribe
github_analyst_view
.Haz clic en Guardar.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
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` );
Sustituye
PROJECT_ID
por el ID del proyecto.Haz clic en
Ejecutar.En la consola, ve a la página Gestión de identidades y accesos. Google Cloud
Asegúrate de que tu proyecto esté seleccionado en el selector de proyectos.
Haz clic en
Conceder acceso.En el cuadro de diálogo Conceder acceso a, haz lo siguiente:
En el campo Nuevos principales, introduce el grupo que contiene a tus analistas de datos. Por ejemplo,
data_analysts@example.com
.En el campo Selecciona un rol, busca el rol Usuario de BigQuery y selecciónalo.
Haz clic en Guardar.
Ve a la página BigQuery.
En el panel Explorador, selecciona el conjunto de datos
shared_views
para abrir la pestaña Detalles.Haz clic en > Permisos.
CompartirEn el panel Compartir permisos, haz clic en Añadir principal.
En Nuevos principales, introduce el grupo que contiene a tus analistas de datos. Por ejemplo,
data_analysts@example.com
.Haz clic en Seleccionar un rol y selecciona BigQuery > Lector de datos de BigQuery.
Haz clic en Guardar.
Haz clic en Cerrar.
Ve a la página BigQuery.
En el panel Explorador, selecciona el conjunto de datos
github_source_data
para abrir la pestaña Detalles.Haz clic en Compartir > Autorizar vistas.
En el panel Vistas autorizadas, en Vista autorizada, introduce
PROJECT_ID.shared_views.github_analyst_view
.Sustituye PROJECT_ID por el ID del proyecto.
Haz clic en Añadir autorización.
Ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
SELECT * FROM `
PROJECT_ID
.shared_views.github_analyst_view`;Sustituye
PROJECT_ID
por el ID del proyecto.Haz clic en
Ejecutar.- 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.
- 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.
Elimine el conjunto de datos que contiene la vista autorizada.
Elimine la tabla del conjunto de datos de origen.
- Para obtener información sobre los controles de acceso en BigQuery, consulta el artículo sobre los roles y permisos de gestión de identidades y accesos de BigQuery.
- Para obtener información sobre las vistas de BigQuery, consulta Introducción a las vistas lógicas.
- Para obtener más información sobre las vistas autorizadas, consulte el artículo Vistas autorizadas.
- Para conocer los conceptos básicos sobre el control de acceso, consulta la descripción general de la gestión de identidades y accesos.
- Para saber cómo gestionar el control de acceso, consulta Gestionar políticas.
Crear un conjunto de datos para almacenar los datos de origen
Empieza creando un conjunto de datos para almacenar los datos de origen.
Para crear el conjunto de datos de origen, elija una de las siguientes opciones:
Consola
SQL
Usa la declaración de DDL CREATE SCHEMA
:
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Crear una tabla y cargar los datos de origen
Después de crear el conjunto de datos de origen, rellena una tabla guardando los resultados de una consulta SQL en una tabla de destino. La consulta recupera datos del conjunto de datos público de GitHub.
Consola
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Crear un conjunto de datos para almacenar la vista autorizada
Después de crear el conjunto de datos de origen, crea otro conjunto de datos independiente para almacenar la vista autorizada que compartes con tus analistas de datos. En un paso posterior, concederás a la vista autorizada acceso a los datos del conjunto de datos de origen. De esta forma, tus analistas de datos tendrán acceso a la vista autorizada, pero no a los datos de origen.
Las vistas autorizadas deben crearse en un conjunto de datos diferente al de los datos de origen. De esta forma, los propietarios de los datos pueden dar acceso a los usuarios a la vista autorizada sin conceder acceso simultáneamente a los datos subyacentes. El conjunto de datos de origen y el conjunto de datos de la vista autorizada deben estar en la misma ubicación regional.
Para crear un conjunto de datos en el que almacenar la vista, elija una de las siguientes opciones:
Consola
SQL
Usa la declaración de DDL CREATE SCHEMA
:
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Crea la vista autorizada en el nuevo conjunto de datos
En el nuevo conjunto de datos, crea la vista que quieras autorizar. Esta es la vista que compartes con tus analistas de datos. Esta vista se crea con una consulta de SQL que excluye las columnas que no quieres que vean los analistas de datos.
La tabla de origen github_contributors
contiene dos campos de tipo RECORD
:
author
y committer
. En este tutorial, la vista autorizada excluye todos los datos del autor, excepto su nombre, y todos los datos del colaborador, excepto su nombre.
Para crear la vista en el nuevo conjunto de datos, elija una de las siguientes opciones:
Consola
SQL
Usa la declaración de DDL CREATE VIEW
:
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Conceder permiso a tus analistas de datos para ejecutar trabajos de consulta
Para consultar la vista, tus analistas de datos necesitan el permiso bigquery.jobs.create
para poder ejecutar trabajos de consulta y deben tener acceso a la vista. En esta sección, asigna el rol bigquery.user
a tus analistas de datos. El rol
bigquery.user
incluye el permiso bigquery.jobs.create
. En un paso posterior, concederá permiso a sus analistas de datos para acceder a la vista.
Para asignar el grupo de analistas de datos al rol bigquery.user
a nivel de proyecto, siga estos pasos:
Conceder permiso a los analistas de datos para consultar la vista autorizada
Para que tus analistas de datos puedan consultar la vista, deben tener el rol bigquery.dataViewer
a nivel de conjunto de datos o de vista.
Si asignas este rol a nivel de conjunto de datos, tus analistas tendrán acceso a todas las tablas y vistas del conjunto de datos. Como el conjunto de datos creado en este tutorial contiene una sola vista autorizada, estás concediendo acceso a nivel de conjunto de datos. Si tienes una colección de vistas autorizadas a las que necesitas conceder acceso, te recomendamos que uses un conjunto de datos autorizado.
El rol bigquery.user
que concedió a sus analistas de datos anteriormente les da los permisos necesarios para crear trabajos de consulta. Sin embargo, no podrán consultar la vista correctamente a menos que también tengan acceso bigquery.dataViewer
a la vista autorizada o al conjunto de datos que contiene la vista.
Para dar a tus analistas de datos bigquery.dataViewer
acceso al conjunto de datos que contiene la vista autorizada, haz lo siguiente:
Consola
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Autorizar la vista para acceder al conjunto de datos de origen
Después de crear controles de acceso para el conjunto de datos que contiene la vista autorizada, concede a la vista autorizada acceso al conjunto de datos de origen. Esta autorización da acceso a la vista, pero no al grupo de analistas de datos, a los datos de origen.
Para conceder a la vista autorizada acceso a los datos de origen, elija una de estas opciones:
Consola
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Verificar la configuración
Cuando haya completado la configuración, un miembro de su grupo de analistas de datos (por ejemplo, data_analysts
) podrá verificarla consultando la vista.
Para verificar la configuración, un analista de datos debe ejecutar la siguiente consulta:
Los resultados de la consulta son similares a los siguientes. En los resultados solo se muestran el nombre del autor y el nombre del responsable de la confirmación.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
Código fuente completo
Aquí tienes el código fuente completo del tutorial para que lo consultes.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Eliminar el proyecto
Consola
gcloud
Eliminar recursos concretos
Si quieres eliminar los recursos utilizados en este tutorial, sigue estos pasos:
Como has creado los recursos utilizados en este tutorial, no se necesitan permisos adicionales para eliminarlos.