En esta página, se explica cómo acceder a una base de datos de Spanner cuando eres un usuario del control de acceso detallado.
Para obtener más información sobre el control de acceso detallado, consulta Información sobre el control de acceso detallado.
Como usuario del control de acceso detallado, debes seleccionar un rol de base de datos para ejecutar instrucciones y consultas SQL, y realizar operaciones de fila en una base de datos. La selección de roles persiste durante toda la sesión hasta que cambias el rol.
Cuando envías una consulta, una operación DML o una operación de fila, Spanner verifica la autorización con las siguientes reglas:
- consola de
Primero, Spanner verifica si tienes permisos de IAM a nivel de la base de datos. Si es así, la consola de Google Cloud no muestra un selector de roles de la base de datos, y tu sesión continúa con tus permisos a nivel de la base de datos.
Si solo tienes privilegios de control de acceso detallado y no tienes permisos a nivel de la base de datos de IAM, debes tener acceso al rol del sistema
spanner_sys_reader
o a uno de sus roles de miembro. Selecciona un rol en la página Descripción general de la base de datos para que la sesión de la consola de Google Cloud continúe con los privilegios necesarios.
- SDK de Google Cloud
Si especificas un rol de base de datos cuando envías una consulta, una operación de DML o una operación de fila, Spanner verifica los privilegios de control de acceso detallado. Si la verificación falla, Spanner no verifica los permisos de IAM a nivel de la base de datos y la operación falla.
Si no especificas un rol de la base de datos, Spanner verifica los permisos de IAM a nivel de la base de datos y, si las verificaciones se realizan correctamente, tu sesión continúa con tus permisos a nivel de la base de datos.
Usa estos métodos para especificar un rol de base de datos cuando accedas a una base de datos de Spanner:
Console
Selecciona una base de datos y, luego, en la página Resumen de la base de datos, haz clic en el ícono Cambiar rol de la base de datos (lápiz) junto al campo Rol actual.
De forma predeterminada, cuando un usuario de control de acceso detallado accede, este campo tiene el valor
public
. Para obtener información sobre el rol del sistemapublic
, consulta Roles del sistema de control de acceso detallado.En el diálogo Change database role, selecciona otro rol de la lista de roles disponibles.
Haz clic en Actualizar.
En el campo Rol actual, se muestra el rol nuevo.
gcloud
Agrega la opción
--database-role
al comandogcloud spanner databases execute-sql
de la siguiente manera:gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME
Bibliotecas cliente
C++
C#
Go
Java
Node.js
PHP
Python
Ruby