Dataform y BigQuery usan IAM para el control de acceso. Para obtener más información sobre las funciones y los permisos de Dataform en IAM, consulta Controla el acceso con IAM.
Cuando Dataform ejecuta una tabla o vista, crea el recurso en BigQuery. Durante el desarrollo en Dataform, puedes otorgar funciones de BigQuery a tablas y vistas individuales para controlar su acceso en BigQuery después de la ejecución.
Para obtener más información sobre cómo otorgar y revocar el acceso a los recursos, consulta Otorga acceso a un recurso.
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las API de BigQuery and Dataform.
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las API de BigQuery and Dataform.
Otorga funciones de BigQuery a una tabla o vista
Puedes otorgar funciones de BigQuery a una tabla o vista en Dataform si agregas un bloque post_operations
con la declaración DCL GRANT
al archivo de definición .sqlx
de la tabla o vista seleccionada.
Para otorgar funciones de BigQuery a una tabla o vista seleccionada, sigue estos pasos:
En Google Cloud Console, ve a la página Dataform.
Selecciona un repositorio y, luego, un lugar de trabajo.
En el panel Archivos, expande el directorio
definitions/
.Selecciona el archivo de definición
.sqlx
de la tabla o la vista a la que deseas otorgar acceso.En el archivo, ingresa el siguiente fragmento de código:
post_operations { GRANT "ROLE_LIST" ON ${self()} TO "USER_LIST" }
Reemplaza lo siguiente:
- ROLE_LIST por una función de BigQuery o una lista de funciones de BigQuery separadas por comas que deseas otorgar.
USER_LIST con una lista de usuarios separados por comas a los que se otorga la función.
Para obtener una lista de los formatos válidos, consulta user_list.
Ejecuta la tabla o vista.
Si otorgaste acceso a una tabla incremental, quita la declaración
GRANT
del archivo de definición de tablas después de la primera ejecución.
En la siguiente muestra de código, se muestra la función Visualizador de BigQuery otorgada en una tabla a un usuario:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer` ON ${self()} TO "user:222larabrown@gmail.com"
}
Cómo revocar roles de BigQuery desde una tabla o vista
Puedes revocar roles de BigQuery desde una tabla o vista si agregas un bloque post_operations
con la declaración DCL REVOKE
al archivo de definición .sqlx
de la tabla o vista seleccionadas.
Para revocar los roles de BigQuery de una tabla o vista seleccionada, sigue estos pasos:
En Google Cloud Console, ve a la página Dataform.
Selecciona un repositorio y, luego, un lugar de trabajo.
En el panel Archivos, expande el directorio
definitions/
.Selecciona el archivo de definición
.sqlx
de la tabla o la vista a la que deseas revocar el acceso.En el bloque
post_operations
, ingresa la siguiente sentenciaREVOKE
:REVOKE "ROLE_LIST" ON ${self()} TO "USER_LIST"
Reemplaza lo siguiente:
- ROLE_LIST por una función de BigQuery o una lista de funciones de BigQuery separadas por comas que deseas revocar.
- USER_LIST con una lista de usuarios separada por comas de la que se revoca la función. Para obtener una lista de los formatos válidos, consulta user_list.
Para revocar el acceso otorgado en una declaración
GRANT
en el archivo, reemplaza la declaraciónGRANT
por unaREVOKE
.Quitar la declaración
GRANT
sin agregar la declaraciónREVOKE
no revoca el acceso.
Ejecuta la tabla o vista.
Si revocaste el acceso a una tabla incremental, quita la declaración
REVOKE
del archivo de definición de tablas después de la primera ejecución.
En la siguiente muestra de código, se muestra la función de Visualizador de BigQuery revocada de un usuario en una tabla:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer` ON ${self()} FROM "user:222larabrown@gmail.com"
}
Administre de forma colectiva las funciones de BigQuery para las tablas y las vistas
Para controlar el acceso de BigQuery a las tablas y vistas individuales en una sola ubicación, puedes crear un archivo type: "operations"
dedicado con declaraciones GRANT
y REVOKE
de DCL.
Para administrar el acceso a la tabla de BigQuery en un solo archivo type: "operations"
, sigue estos pasos:
En Google Cloud Console, ve a la página Dataform.
Selecciona un repositorio y, luego, un lugar de trabajo.
En el panel Archivos, junto a
definitions/
, haz clic en el menúMás.
Haz clic en Crear archivo.
En el campo Add a file path, ingresa el nombre del archivo, seguido de
.sqlx
después dedefinitions/
. Por ejemplo,definitions/table-access.sqlx
.Los nombres de archivo solo pueden incluir números, letras, guiones y guiones bajos.
Haz clic en Crear archivo.
En el panel Files, expande el directorio
definitions/
y selecciona el archivo recién creado.En el archivo, ingresa el siguiente fragmento de código:
config { type: "operations" } GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST" REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
Reemplaza lo siguiente:
- ROLE_LIST por una función de BigQuery o una lista de funciones de BigQuery separadas por comas que deseas otorgar o revocar.
- RESOURCE_TYPE por el tipo de recurso:
TABLE
oVIEW
- RESOURCE_NAME por el nombre de la tabla o vista
USER_LIST con una lista separada por comas de usuarios a los que se otorga o revoca la función.
Para obtener una lista de los formatos válidos, consulta user_list.
Agrega las sentencias
GRANT
yREVOKE
según sea necesario.Para revocar el acceso otorgado en una declaración
GRANT
en el archivo, reemplaza la declaraciónGRANT
por unaREVOKE
.Quitar la declaración
GRANT
sin agregar la declaraciónREVOKE
no revoca el acceso.
Ejecuta el archivo después de cada actualización.
- Si otorgaste o revocaste el acceso en una tabla incremental, quita las declaraciones
GRANT
oREVOKE
del archivo después de la primera ejecución de la declaración.
- Si otorgaste o revocaste el acceso en una tabla incremental, quita las declaraciones
¿Qué sigue?
- Para obtener más información sobre IAM, consulta Descripción general de IAM.
- Para obtener más información sobre las funciones y los permisos, consulta Información sobre las funciones.
- Para obtener más información sobre cómo administrar el acceso a los recursos, consulta Administra el acceso a proyectos, carpetas y organizaciones.