Dataform y BigQuery usan IAM para el control de acceso. Para obtener más información sobre los roles de Dataform y permisos en IAM, consulta Controla el acceso con la IAM.
Cuando Dataform ejecuta una tabla o vista, crea el recurso en en BigQuery. Durante el desarrollo en Dataform, puedes otorgar Roles 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
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
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 and Dataform APIs.
Otorga roles de BigQuery a una tabla o vista
Puedes otorgar roles de BigQuery a una tabla o vista en Dataform de las siguientes maneras:
agregar un bloque post_operations
con
la declaración de 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 la consola de Google Cloud, ve a la página Dataform.
Selecciona un repositorio y, luego, un lugar de trabajo.
En el panel Archivos, expande la
definitions/
.Selecciona el archivo de definición
.sqlx
de la tabla o vista. al que quieres otorgar acceso.En el archivo, ingresa el siguiente fragmento de código:
post_operations { GRANT "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST" }
Reemplaza lo siguiente:
ROLE_LIST: Es la función de BigQuery o la lista de elementos separados por comas. roles de BigQuery que quieras otorgar.
RESOURCE_TYPE:
TABLE
oVIEW
.USER_LIST: Es la lista de usuarios separados por comas a los que a la que se le otorga el rol.
Para obtener una lista de los formatos válidos, consulta user_list
Opcional: Haz clic en Formato.
Ejecuta la tabla o vista.
Si otorgaste acceso a una tabla incremental, quita la sentencia
GRANT
. del archivo de definición de tablas después de la primera ejecución.
En la siguiente muestra de código, aparece el Visualizador de BigQuery. Rol otorgado en una tabla a un usuario:
config { type: "table" }
SELECT ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON TABLE ${self()}
TO "user:222larabrown@gmail.com"
}
Cómo revocar roles de BigQuery de una tabla o vista
Para revocar roles de BigQuery desde una tabla o vista, agrega un
post_operations
bloque con
La declaración de DCL REVOKE
.
al archivo de definición .sqlx
de la tabla o vista seleccionada.
Para revocar los roles de BigQuery de una tabla o vista seleccionada, sigue estos pasos:
En la consola de Google Cloud, ve a la página Dataform.
Selecciona un repositorio y, luego, un lugar de trabajo.
En el panel Archivos, expande la
definitions/
.Selecciona el archivo de definición
.sqlx
de la tabla o vista. a los que quieres revocar el acceso.En el bloque
post_operations
, ingresa la siguiente sentenciaREVOKE
:REVOKE "ROLE_LIST" ON "RESOURCE_TYPE" ${self()} TO "USER_LIST"
Reemplaza lo siguiente:
- ROLE_LIST: Es la función de BigQuery o la lista de elementos separados por comas. roles de BigQuery que quieres revocar.
- RESOURCE_TYPE:
TABLE
oVIEW
. - USER_LIST: Es la lista de usuarios separados por comas a los que se le revoca el rol. Para obtener una lista de los formatos válidos, consulta user_list
Para revocar el acceso otorgado en una sentencia
GRANT
en el archivo, reemplaza el DeclaraciónGRANT
con una sentenciaREVOKE
.Removing the `GRANT` statement without adding the `REVOKE` statement does not revoke access.
Opcional: Haz clic en Formato.
Ejecuta la tabla o vista.
Si revocaste el acceso a una tabla incremental, quita la sentencia
REVOKE
. del archivo de definición de tablas después de la primera ejecución.
En la siguiente muestra de código, aparece el Visualizador de BigQuery. Se revocó el rol de un usuario en una tabla:
config { type: "table" }
SELECT ...
post_operations {
REVOKE `roles/bigquery.dataViewer`
ON TABLE ${self()}
FROM "user:222larabrown@gmail.com"
}
Administra de forma colectiva los roles de BigQuery para tablas y vistas
Para controlar el acceso de BigQuery a tablas y vistas individuales en un solo
ubicación, puedes crear un archivo type: "operations"
dedicado con
GRANT
y REVOKE
Declaraciones de DCL.
Para administrar el acceso a las tablas de BigQuery en un solo archivo type: "operations"
,
sigue estos pasos:
En la consola de Google Cloud, 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ásHaz clic en Crear archivo.
En el campo Agregar una ruta de acceso al archivo, ingresa el nombre del archivo seguido del
.sqlx
después deldefinitions/
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: Es la función de BigQuery o la lista de elementos separados por comas. roles de BigQuery que quieras otorgar o revocar.
- RESOURCE_TYPE:
TABLE
oVIEW
. - RESOURCE_NAME: Es el nombre de la tabla o vista.
- USER_LIST: Es la lista de usuarios separados por comas a los que se le otorga o revoca el rol. 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 sentencia
GRANT
en el archivo, reemplaza el DeclaraciónGRANT
con una sentenciaREVOKE
.Quita la declaración
GRANT
sin agregar la declaraciónREVOKE
. no revoca el acceso.
Opcional: Haz clic en Formato.
Ejecuta el archivo después de cada actualización.
- Si otorgaste o revocaste el acceso a una tabla incremental, quita las
GRANT
. oREVOKE
del archivo después de la primera ejecución de la instrucción.
- Si otorgaste o revocaste el acceso a una tabla incremental, quita las
¿Qué sigue?
- Para obtener más información sobre IAM, consulta Descripción general de IAM.
- Para obtener más información sobre los roles y permisos, consulta Comprende los roles.
- Para obtener más información sobre cómo administrar el acceso a los recursos, consulta Administra el acceso a proyectos, carpetas y organizaciones.