En esta página, se describe cómo proteger las bases de datos de Spanner contra la eliminación accidental.
La protección contra la eliminación de bases de datos de Spanner evita que los usuarios o cuentas de servicio que tengan los permisos de IAM necesarios para borrar bases de datos existentes por accidente. Cuando habilitas la protección contra la eliminación de bases de datos, puedes proteger las bases de datos que son importantes para la aplicación y los servicios. Usa la protección contra la eliminación de bases de datos junto con la recuperación de un momento determinado y las funciones de copia de seguridad para proporcionar un conjunto completo de capacidades de protección de datos para las bases de datos de Spanner.
De forma predeterminada, la configuración de la protección contra la eliminación se inhabilita cuando creas la base de datos nueva. Puedes habilitar la configuración de protección contra la eliminación después de que la creación de la base de datos se realice de forma correcta. Además, puedes habilitar este parámetro de configuración en una base de datos existente. Si deseas proteger varias bases de datos, habilita la configuración en cada base de datos de forma individual. Habilitar o inhabilitar la protección contra la eliminación no afecta el rendimiento de la base de datos. Si necesitas borrar una base de datos que tenga habilitada la protección de la base de datos, debes inhabilitar la protección para poder borrarla.
Limitaciones
No puedes habilitar la protección contra la eliminación de bases de datos en los siguientes casos:
- Si la base de datos se está borrando.
- Si la base de datos se restablece a partir de una copia de seguridad (Una vez que se complete la operación de restablecimiento, puedes habilitar la protección de la base de datos).
Además, las copias de seguridad de una base de datos y las bases de datos restablecidas a partir de una copia de seguridad no heredan la configuración de protección contra la eliminación de bases de datos de su base de datos de origen. Después de restablecer una base de datos desde una copia de seguridad, debes habilitar la protección contra la eliminación de bases de datos por separado.
Si borras el proyecto, la protección contra la eliminación de bases de datos de Spanner no impide que se borre la base de datos o instancia. Para obtener más información sobre lo que sucede cuando borras tu proyecto, consulta Cómo cerrar (borrar) proyectos.
Control de acceso con IAM
Para habilitar la configuración de protección contra la eliminación de la base de datos, debes tener ciertos permisos de IAM.
Debes tener el permiso spanner.databases.update
para habilitar o inhabilitar la protección contra la eliminación de bases de datos. Si solo necesitas ver el estado de la configuración de la base de datos, debes tener el permiso spanner.databases.list
o spanner.databases.get
. Para obtener información sobre cómo otorgar permisos de IAM de Spanner, consulta Aplica permisos de IAM.
Si tienes la función predefinida de Administrador de base de datos de Spanner roles/spanner.databaseAdmin
para tu base de datos, puedes actualizar y habilitar la protección contra la eliminación de bases de datos.
Puedes habilitar la configuración de la protección contra la eliminación de bases de datos en una base de datos existente para evitar que se borre por accidente.
Habilitar la protección contra la eliminación de bases de datos
Puedes habilitar la protección contra la eliminación de bases de datos mediante gcloud CLI, las bibliotecas cliente y las APIs de REST o RPC. No puedes habilitar la protección contra la eliminación de bases de datos con la consola de Google Cloud.
gcloud
Para habilitar la configuración de protección contra la eliminación de una base de datos, ejecuta el siguiente comando:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--enable-drop-protection [--async]
Se requieren las siguientes opciones:
DATABASE_ID
- Es el ID de la base de datos.
INSTANCE_ID
- El ID de la instancia para la base de datos.
Las siguientes configuraciones son opcionales:
--async
- Regresa de inmediato, sin esperar a que se complete la operación en curso.
Bibliotecas cliente
C++
C#
Go
Java
Node.js
PHP
Python
Rita
Cómo comprobar si una base de datos tiene habilitada la protección contra la eliminación
Para determinar si tu base de datos tiene habilitada la protección contra la eliminación, observa la configuración de la base de datos.
gcloud
Para verificar si una base de datos tiene habilitada la protección contra la eliminación, puedes ejecutar el comando gcloud spanner databases describe
para obtener información detallada sobre una base de datos o puedes ejecutar gcloud spanner databases list
para obtener información detallada sobre las bases de datos de una instancia.
gcloud spanner databases describe
projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID
Se requieren las siguientes opciones:
PROJECT_ID
- Es el ID del proyecto para la base de datos.
INSTANCE_ID
- El ID de la instancia para la base de datos.
DATABASE_ID
- Es el ID de la base de datos.
Si la protección contra la eliminación está habilitada, verás un parámetro
enableDropProtection: true
en el resultado.
Inhabilitar la protección contra la eliminación de bases de datos
Puedes inhabilitar la protección contra la eliminación de bases de datos si una base de datos ya no necesita esta protección o si necesitas borrar una base de datos que tenga esta configuración habilitada.
Si deseas borrar una instancia que tiene una o más bases de datos con la protección contra la eliminación habilitada, primero debes inhabilitar la protección contra la eliminación en todas las bases de datos de esa instancia antes de poder borrar la instancia.
gcloud
Para inhabilitar la configuración de protección contra la eliminación de una base de datos, ejecuta el siguiente comando:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--no-enable-drop-protection [--async]
Se requieren las siguientes opciones:
DATABASE_ID
- Es el ID de la base de datos.
INSTANCE_ID
- El ID de la instancia para la base de datos.
Las siguientes configuraciones son opcionales:
--async
- Regresa de inmediato, sin esperar a que se complete la operación en curso.
¿Qué sigue?
- Aprende a crear y administrar bases de datos.
- Obtén más información sobre cómo crear una copia de seguridad y restablecer una base de datos.
- Aprende a realizar actualizaciones del esquema.