Vistas autorizadas

En este documento, se describe cómo crear vistas autorizadas y vistas materializadas autorizadas en BigQuery.

Descripción general

Como administrador de datos, puedes crear una vista autorizada para compartir un subconjunto de datos de un conjunto de datos con usuarios y grupos específicos (principales). Los directores pueden ver los datos que compartes y ejecutar consultas en ellos, pero no pueden acceder al conjunto de datos de origen directamente.

Tipos de vistas

Una vista lógica es el tipo de vista predeterminado de BigQuery, y una vista materializada es una vista procesada previamente que almacena en caché de forma periódica los resultados de una consulta para aumentar el rendimiento y la eficiencia.

Una vista autorizada para una vista lógica se denomina vista autorizada, pero una vista autorizada para una vista materializada se denomina vista materializada autorizada.

Si una vista lógica se basa en una consulta grande o costosa en cuanto al procesamiento, puedes crear una vista materializada en su lugar. Sin embargo, consultar solo un subconjunto de tus datos o usar otras técnicas a menudo puede mejorar el rendimiento sin necesidad de crear una vista materializada.

Para obtener más información, consulta los siguientes recursos:

Pasos de alto nivel para crear vistas autorizadas

Para crear y compartir una vista, revisa estos pasos generales, que son los mismos para las vistas lógicas autorizadas y las vistas materializadas autorizadas.

  • Crea un conjunto de datos que contenga tus datos fuente.
  • Ejecuta una consulta para cargar datos en una tabla de destino en el 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 tus analistas de datos pueden ver en los resultados de la consulta.
  • Otorga permiso a tus analistas de datos para que ejecuten trabajos de consulta.
  • Otorgar a tus analistas de datos acceso al conjunto de datos que contiene la vista autorizada
  • Otorga acceso de vista autorizada al conjunto de datos de origen.

Alternativas

Si bien las vistas autorizadas son flexibles y escalables, es posible que uno de los siguientes métodos sea más adecuado para tu caso de uso:

  • Establece políticas a nivel de las filas en una tabla.
  • Establece políticas a nivel de la columna en una tabla.
  • Almacena los datos en una tabla independiente.
  • Compartir todas las vistas de un conjunto de datos (conjuntos de datos autorizados)

Usa la seguridad a nivel de las filas o de las columnas, o bien tablas separadas

Cuando se establecen políticas de acceso a nivel de fila en una tabla o se crea una tabla independiente para contener datos sensibles, un administrador de datos puede restringir la capacidad de un usuario para ver esos datos. Almacenar datos en una tabla independiente aísla los datos y elimina la capacidad de ver cuántas filas existen en la tabla.

Además, cuando se crean y aplican etiquetas de políticas, un administrador de datos puede restringir la capacidad del usuario de ver las columnas de una tabla.

Almacenar los datos en una tabla independiente es el método más seguro, pero menos flexible. La configuración de políticas a nivel de las filas es flexible y segura, mientras que compartir vistas autorizadas es flexible y proporciona el mejor rendimiento.

Para comparar estos métodos en detalle, consulta los siguientes recursos:

Cómo compartir todas las vistas de un conjunto de datos

Si deseas otorgar acceso a una colección de vistas a un conjunto de datos sin tener que autorizar cada vista individual, puedes agrupar las vistas en un conjunto de datos y, luego, darle al conjunto de datos que contiene las vistas acceso al conjunto de datos que contiene los datos.

Luego, puedes otorgar a las principales acceso al conjunto de datos que contiene el grupo de vistas o a vistas individuales en el conjunto de datos, según sea necesario. Un conjunto de datos que tiene acceso a otro conjunto de datos se denomina conjunto de datos autorizado. El conjunto de datos que autoriza a otro conjunto de datos a acceder a sus datos se denomina conjunto de datos compartidos.

Para obtener más información, consulta Conjuntos de datos autorizados y Cómo autorizar un conjunto de datos.

Limitaciones

  • Cuando creas una vista autorizada o una vista materializada autorizada en otro conjunto de datos, el conjunto de datos de origen y el de la vista autorizada deben estar en la misma ubicación regional.
  • Cuando borras una vista autorizada, pueden pasar hasta 24 horas para que se quite la vista autorizada de la lista. Durante este tiempo, no puedes acceder a la vista autorizada, pero esta puede aparecer en la lista de vistas y se descuenta del límite de vistas autorizadas. Este límite puede evitar la creación de vistas autorizadas adicionales si la nueva vista autorizada superara ese límite.

Antes de comenzar

Otorga roles de Identity and Access Management (IAM) que les brinden a los usuarios los permisos necesarios para consultar las vistas autorizadas o las vistas materializadas autorizadas que compartes.

Roles obligatorios

Para crear o actualizar una vista autorizada, necesitas permisos en el conjunto de datos que contiene la vista y en el conjunto de datos que proporciona acceso a la vista.

También debes otorgar a los usuarios o grupos acceso al proyecto y al conjunto de datos que contienen la vista.

Permisos de administrador en el conjunto de datos que contiene la vista

Las vistas se tratan como recursos de tabla en BigQuery, por lo que la creación de una vista requiere los mismos permisos que la creación de una tabla. También debes tener permisos para consultar las tablas a las que hace referencia la consulta en SQL de la vista.

Para crear una vista, necesitas el permiso bigquery.tables.create de IAM. El rol predefinido de IAM roles/bigquery.dataEditor incluye los permisos que necesitas para crear una configuración.

Además, si tienes el permiso bigquery.datasets.create, puedes crear vistas en los conjuntos de datos que crees. Si deseas crear una vista para datos que no son de tu propiedad, debes tener el permiso bigquery.tables.getData para esa tabla.

Para obtener más información sobre los roles y los permisos de IAM en BigQuery, consulta Roles y permisos predefinidos.

Permisos de administrador en el segundo conjunto de datos que otorga acceso a la vista

Para actualizar las propiedades del conjunto de datos, necesitas los siguientes permisos de IAM:

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (solo es necesaria cuando se actualizan los controles de acceso del conjunto de datos en la consola de Google Cloud)

El rol predefinido de IAM roles/bigquery.dataOwner incluye los permisos que necesitas para actualizar las propiedades de un conjunto de datos.

Además, si tienes el permiso bigquery.datasets.create, puedes actualizar las etiquetas de los conjuntos de datos que crees.

Para obtener más información sobre los roles y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Permisos del usuario en el proyecto y el conjunto de datos de la vista

Para compartir una vista autorizada con usuarios o grupos, debes otorgarles los siguientes permisos de IAM:

  • El rol de IAM roles/bigquery.user al proyecto que contiene la vista autorizada
  • El rol de IAM roles/bigquery-data-viewer al conjunto de datos que contiene la vista autorizada

Trabaja con vistas autorizadas

En las siguientes secciones, se describe cómo trabajar con vistas autorizadas y vistas materializadas autorizadas.

Crea, comparte y borra una vista autorizada

Si deseas conocer los pasos completos para autorizar, compartir y borrar una vista autorizada, consulta el instructivo Crea una vista autorizada.

Administra usuarios o grupos para vistas autorizadas

Después de autorizar una vista, puedes mantener el acceso a ella completando las siguientes tareas para un conjunto de datos, una tabla o una vista:

  • Consulta la política de acceso.
  • Otorga acceso.
  • Revocar el acceso
  • Negar el acceso

Para obtener más información, consulta Controla el acceso a los recursos con IAM.

Quita la autorización a una vista

Para quitar la autorización de una vista, selecciona una de las siguientes opciones:

Console

  1. Ve a la página de BigQuery en la consola de Google Cloud.

    Ir a BigQuery

  2. En el panel Explorador, expande tu proyecto y elige un conjunto de datos.

  3. Haz clic en Compartir > Autorizar vistas.

  4. Haz clic en para Quitar autorización.

  5. Haz clic en Cerrar.

bq

Para quitar la autorización de una vista, usa el comando bq rm. Ingresa el table_id de la vista de la que quieres quitar la autorización.

    bq rm \
    project_id:dataset:table_id
    

API

Llama al método tables.delete y usa las propiedades projectID, datasetID y tableID para quitar la vista autorizada de tu conjunto de datos. Para obtener más información, consulta Tablas.

Cuotas y límites

  • Las vistas autorizadas están sujetas a los límites de los conjuntos de datos. Para obtener más información, consulta Límites de conjuntos de datos.
  • Si quitas una vista autorizada, pueden pasar hasta 24 horas para que se quiten del sistema todas las referencias a la vista. Para evitar errores, espera 24 horas antes de reutilizar el nombre de una vista que se quitó o crea un nombre único para tu vista.

Temas avanzados

En las siguientes secciones, se describen los métodos avanzados para usar vistas autorizadas.

Combina la seguridad a nivel de las filas con las vistas autorizadas

Los datos que se muestran en una vista lógica o en una vista materializada se filtran según las políticas de acceso a nivel de las filas de la tabla de origen subyacente.

Para obtener detalles sobre cómo interactúa la seguridad a nivel de las filas con las vistas materializadas, consulta Usa la seguridad a nivel de las filas con otras funciones de BigQuery.

Combina la seguridad a nivel de la columna con las vistas autorizadas

El impacto de la seguridad a nivel de columna en las vistas es independiente de si la vista es autorizada o no.

Para obtener una descripción detallada de cómo se aplican los permisos, consulta Consulta vistas para la seguridad a nivel de las columnas.

Usa Analytics Hub con vistas autorizadas

Analytics Hub es una plataforma de intercambio de datos con las siguientes funciones:

  • Te permite compartir datos y estadísticas a gran escala más allá de los límites de la organización.
  • Usa un marco de trabajo sólido de seguridad y privacidad.
  • Admite la publicación de un conjunto de datos de BigQuery, llamado conjunto de datos compartido, y sus vistas autorizadas y conjuntos de datos autorizados asociados, a un conjunto de suscriptores.

Un conjunto de datos vinculado es un conjunto de datos de BigQuery de solo lectura que funciona como un puntero o una referencia a un conjunto de datos compartido. Cuando te suscribes a una ficha de Analytics Hub, se crea un conjunto de datos vinculado en tu proyecto, pero no una copia del conjunto de datos, de modo que los suscriptores pueden leer los datos, pero no pueden agregar ni actualizar objetos dentro de él.

No se admiten las vistas materializadas que hagan referencia a tablas en el conjunto de datos vinculado.

Para obtener más información, consulta Introducción a Analytics Hub.

¿Qué sigue?