Funciones y permisos predefinidos

En esta página, se proporciona información sobre los permisos y las funciones de administración de identidades y accesos (IAM) de BigQuery.

En esta página, se incluyen funciones y permisos relevantes para cada uno de los productos complementarios de BigQuery:

  • BigQuery ML
  • Servicio de transferencia de datos de BigQuery
  • BigQuery BI Engine

Para obtener información adicional sobre los controles de acceso en BigQuery ML, consulta Control de acceso en la documentación de BigQuery ML.

Descripción general

Cuando una identidad llama a una API de Google Cloud, BigQuery requiere que la identidad tenga los permisos adecuados para usar el recurso. Puedes otorgar permisos si asignas funciones a un usuario, grupo o a una cuenta de servicio.

En esta página, se describen las funciones de IAM de BigQuery que puedes otorgar a las identidades para acceder a los recursos de BigQuery.

Tipos de funciones de IAM

Existen tres tipos de funciones en IAM:

  • Entre las funciones básicas se incluyen las de propietario, editor y visor. Las funciones básicas representan los controles de acceso que existían antes de la introducción de IAM.

  • Las funciones predefinidas proporcionan acceso detallado a un servicio específico y las administra Google Cloud. Las funciones predefinidas están destinadas a brindar compatibilidad con patrones de control de acceso y casos prácticos comunes.

  • Las funciones personalizadas proporcionan acceso detallado según una lista de permisos especificada por el usuario.

Para determinar si se incluyen uno o más permisos en una función básica, predefinida o personalizada, puedes usar uno de los siguientes métodos:

Cuando asignas funciones predefinidas y básicas a un usuario, los permisos otorgados son una unión de los permisos de cada función.

Si deseas obtener información adicional sobre el uso de IAM para acceder a los recursos, consulta Otorga, cambia y revoca el acceso a los recursos en la documentación de IAM.

Para obtener información sobre las funciones personalizadas, consulta Crea y administra funciones personalizadas en la documentación de IAM.

Funciones predefinidas de IAM y permisos en BigQuery

Para otorgar acceso a un recurso de BigQuery, debes asignar una o más funciones a un usuario, grupo o cuenta de servicio. Puedes otorgar acceso en los siguientes niveles de recursos de BigQuery:

  • Nivel de organización o proyecto de Google Cloud
  • Nivel de conjunto de datos
  • Nivel de tabla o vista

Funciones aplicadas a nivel de la organización o del proyecto de Cloud

Cuando asignas funciones a nivel de organización y de proyecto, otorgas permiso para ejecutar trabajos de BigQuery o acceder a todos los recursos de BigQuery de un proyecto.

Funciones aplicadas a nivel del conjunto de datos

Puedes asignar funciones a nivel del conjunto de datos para proporcionar acceso a un conjunto de datos específico, sin proporcionar acceso completo a los recursos del proyecto. En la jerarquía de políticas de IAM, los conjuntos de datos de BigQuery son recursos secundarios de los proyectos. Para obtener más información sobre la asignación de funciones a nivel de conjunto de datos, consulta la página sobre el control de acceso a los conjuntos de datos.

Funciones aplicadas a recursos individuales dentro de conjuntos de datos

Puedes asignar funciones de forma individual a ciertos tipos de recursos dentro de conjuntos de datos, sin proporcionar acceso completo a los recursos del conjunto de datos.

Las funciones se pueden aplicar a recursos individuales de los siguientes tipos:

  • tablas
  • vistas

Las funciones no se pueden aplicar a recursos individuales de los siguientes tipos:

  • routines
  • models

Para obtener más información sobre cómo asignar funciones a nivel de tabla o vista, consulta Controla el acceso a tablas o vistas.

Permisos de BigQuery

En la tabla siguiente, se describen los permisos disponibles en BigQuery.

Permiso Descripción
bigquery.bireservations.get (Beta) Lee las reservas de BI Engine.
bigquery.bireservations.update (Beta) Actualiza las reservas de BI Engine.
bigquery.capacityCommitments.create (Beta) Crea un compromiso de capacidad en el proyecto.
bigquery.capacityCommitments.delete (Beta) Borra un compromiso de capacidad.
bigquery.capacityCommitments.get (Beta) Recupera los detalles sobre un compromiso de capacidad.
bigquery.capacityCommitments.list (Beta) Enumera todos los compromisos de capacidad en un proyecto.
bigquery.capacityCommitments.update (Beta) Actualiza todos los compromisos de capacidad de un proyecto.
bigquery.connections.create Crea conexiones nuevas en un proyecto.
bigquery.connections.delete Borra una conexión.
bigquery.connections.get Obtiene metadatos de conexión. Se excluyen las credenciales.
bigquery.connections.list Enumera las conexiones en un proyecto.
bigquery.connections.update Actualiza una conexión y sus credenciales.
bigquery.connections.use Usa una configuración de conexión para conectarse a una fuente de datos remota.
bigquery.datasets.create Crea conjuntos de datos vacíos nuevos.
bigquery.datasets.delete Borra un conjunto de datos.
bigquery.datasets.get Obtiene los metadatos sobre un conjunto de datos.
bigquery.datasets.getIamPolicy Se reserva para usarlo más adelante.
bigquery.datasets.setIamPolicy Se reserva para usarlo más adelante.
bigquery.datasets.update Actualiza los metadatos para un conjunto de datos.
bigquery.datasets.updateTag (Beta) Actualiza las etiquetas de un conjunto de datos.
bigquery.jobs.create Ejecuta trabajos (incluidas consultas) en el proyecto.
bigquery.jobs.get Obtiene datos y metadatos de cualquier trabajo*.
bigquery.jobs.list Genera una lista de todos los trabajos y recupera los metadatos de cualquier trabajo enviado por un usuario*. Para los trabajos que enviaron otros usuarios, se ocultan los detalles y los metadatos.
bigquery.jobs.listAll Genera una lista de todos los trabajos y recupera los metadatos de cualquier trabajo enviado por un usuario*.
bigquery.jobs.update Cancela cualquier trabajo*.
bigquery.models.create Crea modelos nuevos.
bigquery.models.delete Borra modelos.
bigquery.models.getData Obtiene datos del modelo. Para obtener metadatos del modelo, necesitas bigquery.models.getMetadata.
bigquery.models.getMetadata Obtiene metadatos del modelo. Para obtener datos del modelo, necesitas bigquery.models.getData.
bigquery.models.list Enumera modelos y metadatos en modelos.
bigquery.models.updateData Actualiza los datos del modelo. Para actualizar los metadatos del modelo, necesitas bigquery.models.updateMetadata.
bigquery.models.updateMetadata Actualiza los metadatos del modelo. Para actualizar los datos del modelo, necesitas bigquery.models.updateData.
bigquery.models.export Exporta un modelo.
bigquery.readsessions.create (Beta) Crea una nueva sesión de lectura a través de la API de almacenamiento de BigQuery.
bigquery.readsessions.getData (Beta) Lee datos de una sesión de lectura a través de la API de BigQuery Storage.
bigquery.readsessions.update (Beta) Actualiza una sesión de lectura a través de la API de BigQuery Storage.
bigquery.reservations.create (Beta) Crea una reserva en un proyecto.
bigquery.reservations.delete (Beta) Borra una reserva.
bigquery.reservations.get (Beta) Recupera los detalles de una reserva.
bigquery.reservations.list (Beta) Enumera todas las reservas en un proyecto.
bigquery.reservations.update (Beta) Actualiza las propiedades de una reserva.
bigquery.reservationAssignments.create (Beta)

Crea una asignación de reserva. Este permiso es obligatorio en el proyecto del propietario y el recurso asignado.
Para mover una asignación de reserva, necesitas bigquery.reservationAssignments.create en el nuevo proyecto del propietario y el recurso asignado.

bigquery.reservationAssignments.delete (Beta)

Borra una asignación de reserva. Este permiso es obligatorio en el proyecto del propietario y el recurso asignado.
Para mover una asignación de reserva, necesitas bigquery.reservationAssignments.delete en el anterior proyecto del propietario y el recurso asignado.

bigquery.reservationAssignments.list (Beta) Enumera todas las asignaciones de reservas de un proyecto.
bigquery.reservationAssignments.search (Beta) Busca una asignación de reserva de una carpeta, organización o proyecto determinado.
bigquery.routines.create Crea rutinas nuevas (funciones y procedimientos almacenados).
bigquery.routines.delete Borra rutinas.
bigquery.routines.get Obtiene metadatos y definiciones de rutinas.
bigquery.routines.list Enumera rutinas y metadatos en rutinas.
bigquery.routines.update

Actualiza metadatos y definiciones de rutinas.

bigquery.savedqueries.create Crea consultas guardadas.
bigquery.savedqueries.delete Borra las consultas guardadas.
bigquery.savedqueries.get Obtiene los metadatos de las consultas guardadas.
bigquery.savedqueries.list Enumera las consultas guardadas.
bigquery.savedqueries.update Actualiza las consultas guardadas.
bigquery.tables.create Crea tablas nuevas.
bigquery.tables.delete Borra tablas.
bigquery.tables.export Exporta los datos de las tablas fuera de BigQuery.
bigquery.tables.get Obtiene metadatos de tablas.
Para obtener datos de tablas, necesitas bigquery.tables.getData.
bigquery.tables.getData Obtiene datos de tablas. Este permiso es necesario para consultar los datos de la tabla.
Para obtener los metadatos de la tabla, necesitas bigquery.tables.get.
bigquery.tables.getIamPolicy Lee la política de IAM de una tabla.
bigquery.tables.list Enumera las tablas y los metadatos de las tablas.
bigquery.tables.setCategory Establece etiquetas de política en el esquema de tabla.
bigquery.tables.setIamPolicy Cambia la política de IAM de una tabla.
bigquery.tables.update

Actualiza los metadatos de la tabla.
Para actualizar los datos de la tabla, necesitas bigquery.tables.updateData.

bigquery.tables.updateData

Actualiza los datos de la tabla.
Para actualizar los metadatos de la tabla, necesitas bigquery.tables.update.

bigquery.tables.updateTag (Beta) Actualiza las etiquetas de una tabla.
bigquery.transfers.get Obtiene los metadatos de las transferencias.
bigquery.transfers.update Crea, actualiza y borra las transferencias.

* En cualquier trabajo que crees, tendrás de forma automática el equivalente a los permisos bigquery.jobs.get y bigquery.jobs.update para ese trabajo.

Funciones predefinidas de IAM de BigQuery

En la siguiente tabla, se enumeran las funciones predefinidas de IAM de BigQuery con una lista correspondiente de todos los permisos que se incluyen en cada función. Ten en cuenta que cada permiso es aplicable a un tipo de recurso específico.

Función Título Descripción Permisos Recurso más bajo
roles/bigquery.admin Administrador de BigQuery Proporciona permisos para administrar todos los recursos dentro del proyecto. Puede administrar todos los datos dentro del proyecto y cancelar trabajos de otros usuarios que se ejecutan dentro del proyecto.
  • bigquery.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/bigquery.connectionAdmin Administrador de conexión de BigQuery
  • bigquery.connections.*
roles/bigquery.connectionUser Usuario de conexión de BigQuery
  • bigquery.connections.get
  • bigquery.connections.getIamPolicy
  • bigquery.connections.list
  • bigquery.connections.use
roles/bigquery.dataEditor Editor de datos de BigQuery

Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:

  • Leer y actualizar los datos y metadatos de la tabla o vista
  • Borrar la tabla o vista

Esta función no se puede aplicar a modelos ni rutinas individuales.

Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:

  • Leer los metadatos del conjunto de datos y enumerar las tablas en el conjunto de datos
  • Crear, actualizar, obtener y borrar las tablas del conjunto de datos

Cuando se aplica a nivel del proyecto o de la organización, esta función también puede crear conjuntos de datos nuevos.

  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.datasets.updateTag
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Tabla o vista
roles/bigquery.dataOwner Propietario de datos de BigQuery

Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:

  • Leer y actualizar los datos y metadatos de la tabla o vista
  • Compartir la tabla o vista
  • Borrar la tabla o vista

Esta función no se puede aplicar a modelos ni rutinas individuales.

Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:

  • Leer, actualizar y borrar el conjunto de datos
  • Crear, actualizar, obtener y borrar las tablas del conjunto de datos

Cuando se aplica a nivel del proyecto o de la organización, esta función también puede crear conjuntos de datos nuevos.

  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Tabla o vista
roles/bigquery.dataViewer Visualizador de datos de BigQuery

Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:

  • Leer datos y metadatos de la tabla o vista

Esta función no se puede aplicar a modelos ni rutinas individuales.

Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:

  • Leer los metadatos del conjunto de datos y enumerar las tablas en el conjunto de datos
  • Leer datos y metadatos de las tablas del conjunto de datos

Cuando se aplica a nivel del proyecto o de la organización, esta función también puede enumerar todos los conjuntos de datos en el proyecto. Sin embargo, se requieren funciones adicionales para permitir la ejecución de los trabajos.

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.export
  • bigquery.models.getData
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Tabla o vista
roles/bigquery.jobUser Usuario de trabajo de BigQuery Proporciona permisos para ejecutar trabajos, incluidas las consultas, dentro del proyecto.
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Proyecto
roles/bigquery.metadataViewer Visualizador de metadatos de BigQuery

Cuando se aplica a una tabla o vista, esta función proporciona permisos para lo siguiente:

  • Leer metadatos de la tabla o vista

Esta función no se puede aplicar a modelos ni rutinas individuales.

Cuando se aplica a un conjunto de datos, esta función proporciona permisos para lo siguiente:

  • Enumerar tablas y vistas en el conjunto de datos
  • Leer los metadatos de las tablas y vistas del conjunto de datos

Cuando se aplica a nivel de proyecto o de organización, esta función proporciona permisos para lo siguiente:

  • Enumerar todos los conjuntos de datos y leer los metadatos de todos los conjuntos de datos del proyecto
  • Enumerar todas las tablas y vistas, y leer los metadatos de todas las tablas y vistas del proyecto

Se requieren funciones adicionales para permitir la ejecución de trabajos.

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.get
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Tabla o vista
roles/bigquery.readSessionUser Usuario de sesión de lectura de BigQuery Otorga acceso para crear y usar sesiones de lectura.
  • bigquery.readsessions.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceAdmin Administrador de recursos de BigQuery Administra todos los recursos de BigQuery.
  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceEditor Editor de recursos de BigQuery Tiene permiso para administrar todos los recursos de BigQuery, pero no puede tomar decisiones de compra.
  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceViewer Visualizador de recursos de BigQuery Tiene permiso para visualizar todos los recursos de BigQuery, pero no puede realizar cambios o tomar decisiones de compra.
  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.user Usuario de BigQuery

Cuando se aplica a un conjunto de datos, esta función permite leer los metadatos del conjunto de datos y enumerar las tablas en el conjunto de datos.

Cuando se aplica a un proyecto, esta función también permite ejecutar trabajos, incluidas las consultas, dentro del proyecto. Un miembro con esta función puede enumerar y cancelar sus propios trabajos y enumerar conjuntos de datos dentro de un proyecto. Además, permite la creación de nuevos conjuntos de datos dentro del proyecto. Al creador se le otorga la función de propietario de datos de BigQuery (roles/bigquery.dataOwner) en estos conjuntos de datos nuevos.

  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.config.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.jobs.create
  • bigquery.jobs.list
  • bigquery.models.list
  • bigquery.readsessions.*
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • bigquery.routines.list
  • bigquery.savedqueries.get
  • bigquery.savedqueries.list
  • bigquery.tables.list
  • bigquery.transfers.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Conjunto de datos

Funciones básicas de BigQuery

Para obtener información sobre las funciones básicas de BigQuery, consulta los permisos y las funciones básicos de BigQuery.

Funciones personalizadas de BigQuery

A fin de crear una función de IAM personalizada para BigQuery, sigue los pasos descritos en la documentación de funciones personalizadas de IAM.

¿Qué sigue?