En esta página, se explica cómo acceder a una base de datos de Spanner cuando eres un usuario de control de acceso detallado.
Si deseas obtener más información sobre el control de acceso detallado, consulta Acerca del control de acceso detallado.
Como usuario de control de acceso detallado, debes seleccionar una función de base de datos para ejecutar instrucciones y consultas de SQL, y realizar operaciones de fila en una base de datos. La selección de la función persiste durante toda la sesión hasta que cambias la función.
Cuando envías una consulta, un DML o una operación de fila, Spanner verifica la autorización mediante las siguientes reglas:
- Consola de Google Cloud
Spanner primero 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 funciones de base de datos, y la sesión continúa con los permisos a nivel de la base de datos.
Si solo tienes privilegios de control de acceso detallados y no tienes permisos a nivel de la base de datos de IAM, debes tener acceso a la función del sistema
spanner_sys_reader
o a una de sus funciones miembros. Selecciona un rol en la página Descripción general de la base de datos para que tu sesión en la consola de Google Cloud continúe con los privilegios necesarios.
- SDK de Google Cloud
Si especificas una función de base de datos cuando envías una consulta, un DML o una operación de fila, Spanner verifica los privilegios de control de acceso detallados. Si la verificación falla, Spanner no comprueba los permisos de IAM a nivel de la base de datos y la operación falla.
Si no especificas una función de base de datos, Spanner verifica los permisos de IAM a nivel de la base de datos y, si las verificaciones se realizan de forma correcta, la sesión continúa con los permisos a nivel de la base de datos.
Usa estos métodos para especificar una función 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 Descripción general de la base de datos, haz clic en el ícono Cambiar función de la base de datos (lápiz) junto al campo Función actual.
De forma predeterminada, cuando un usuario de control de acceso detallado accede, este campo tiene el valor
public
. Para obtener información sobre la función del sistemapublic
, consulta Funciones del sistema de control de acceso detalladas.En el cuadro de diálogo Cambiar rol de la base de datos, selecciona otra función de la lista de funciones disponibles.
Haga clic en Update.
El campo Rol actual 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
Rita