En esta página, se describe cómo proteger las bases de datos de Spanner de la eliminación accidental.
La protección contra la eliminación de bases de datos de Spanner evita que los usuarios o las cuentas de servicio que tengan los permisos de IAM necesarios para borrar la base de datos borren accidentalmente las bases de datos existentes. Si habilitas la protección contra la eliminación de bases de datos, puedes proteger las bases de datos que son importantes para tu aplicación y tus servicios. Usa la protección contra eliminaciones de bases de datos junto con la recuperación de un momento determinado y las funciones de copia de seguridad para proporcionar un conjunto integral de funciones de protección de datos para tus bases de datos de Spanner.
De forma predeterminada, el parámetro de configuración de protección contra la eliminación está inhabilitado cuando creas tu base de datos nueva. Puedes habilitar el parámetro de configuración de protección contra la eliminación después de que la creación de la base de datos se realice correctamente. 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 una de ellas de forma individual. Habilitar o inhabilitar la protección contra eliminaciones no tiene ningún impacto en el rendimiento de la base de datos. Si necesitas borrar una base de datos que tiene habilitada la protección, debes inhabilitarla antes de poder borrarla.
Limitaciones
No puedes habilitar la protección contra la eliminación de bases de datos en los siguientes casos:
- Si se borra la base de datos.
- Si la base de datos se restablece a partir de una copia de seguridad. (Después de 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 eliminación de la base de datos de origen. Después de restablecer una base de datos a partir de una copia de seguridad, debes habilitar su protección contra la eliminación de bases de datos por separado.
Si borras tu proyecto, la protección contra la eliminación de bases de datos de Spanner no evitará que se borre tu base de datos o instancia. Para obtener más información sobre lo que sucede cuando borras tu proyecto, consulta Cerrar proyectos (borrarlos).
Control de acceso con la IAM
Para habilitar la configuración de protección contra la eliminación de tu 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 tu base de datos, debes tener el permiso spanner.databases.list
o
spanner.databases.get
. Si deseas obtener información para otorgar
permisos de IAM de Spanner, consulta
Cómo aplicar permisos de IAM.
Si tienes el rol predefinido de Administrador de la 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 la base de datos.
Puedes habilitar el parámetro de configuración de protección contra la eliminación de bases de datos en una base de datos existente para evitar que se borre accidentalmente.
Habilita la protección contra la eliminación de bases de datos
Puedes habilitar la protección contra la eliminación de bases de datos con la CLI de gcloud, 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 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
- ID de la base de datos.
INSTANCE_ID
- ID de la instancia de la base de datos.
Las siguientes configuraciones son opcionales:
--async
- Se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Bibliotecas cliente
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Verifica si una base de datos tiene habilitada la protección contra la eliminación
Puedes determinar si tu base de datos tiene habilitada la protección contra la eliminación si consultas su configuración.
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 bien 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
- ID del proyecto de la base de datos.
INSTANCE_ID
- ID de la instancia de la base de datos.
DATABASE_ID
- 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.
Inhabilita 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 la necesita o si necesitas borrar una base de datos que tiene habilitado este parámetro de configuración.
Si quieres 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 para poder borrarla.
gcloud
Para inhabilitar la configuración de protección contra 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
- ID de la base de datos.
INSTANCE_ID
- ID de la instancia de la base de datos.
Las siguientes configuraciones son opcionales:
--async
- Se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
¿Qué sigue?
- Obtén más información para crear y administrar bases de datos.
- Obtén más información para crear una copia de seguridad de una base de datos y restablecerla.
- Obtén información para hacer actualizaciones de esquemas.