Questa pagina descrive come proteggere i database Spanner dall'eliminazione accidentale.
La protezione dall'eliminazione dei database di Spanner impedisce l'eliminazione accidentale di database esistenti da parte di utenti o account di servizio che dispongono delle autorizzazioni IAM necessarie per eliminare il database. Abilitando la protezione da eliminazione dei database, puoi salvaguardare i database importanti per la tua applicazione e i tuoi servizi. Utilizza la protezione da eliminazione dei database insieme alle funzionalità di recupero point-in-time e backup per fornire un set completo di funzionalità di protezione dei dati per i tuoi database Spanner.
Per impostazione predefinita, l'impostazione della protezione da eliminazione è disabilitata quando crei il nuovo database. Puoi abilitare l'impostazione di protezione da eliminazione al termine della creazione del database. Inoltre, puoi abilitare questa impostazione su un database esistente. Se vuoi proteggere più database, abilita l'impostazione singolarmente in ogni database. L'abilitazione o la disabilitazione della protezione da eliminazione non influisce sulle prestazioni del database. Se devi eliminare un database in cui è abilitata la protezione del database, devi disabilitarla prima di poter eliminare il database.
Limitazioni
Non puoi abilitare la protezione da eliminazione dei database nei seguenti scenari:
- Se il database è in fase di eliminazione.
- Se il database è in fase di ripristino da un backup. Al termine dell'operazione di ripristino, puoi abilitare la protezione del database.
Inoltre, i backup di un database e dei database ripristinati da un backup non ereditano l'impostazione di protezione dall'eliminazione del database del database di origine. Dopo aver ripristinato un database da un backup, devi attivare la protezione da eliminazione del database separatamente.
Se elimini il progetto, la protezione dall'eliminazione del database di Spanner non impedisce l'eliminazione del database o dell'istanza. Per ulteriori informazioni su cosa accade quando elimini il progetto, consulta Arrestare (eliminazione) dei progetti.
Controllo dell'accesso con IAM
Per abilitare l'impostazione di protezione dall'eliminazione del database, devi disporre di determinate autorizzazioni IAM.
Per abilitare o disabilitare la protezione da eliminazione del database, devi disporre dell'autorizzazione spanner.databases.update
. Se devi solo visualizzare lo stato
della configurazione del database, devi avere l'autorizzazione spanner.databases.list
o
spanner.databases.get
. Per informazioni su come concedere le autorizzazioni IAM di Spanner, consulta Applicare autorizzazioni IAM.
Se disponi del ruolo Amministratore database Spannerroles/spanner.databaseAdmin
predefinito per il database, puoi aggiornare e abilitare la protezione da eliminazione del database.
Puoi abilitare l'impostazione di protezione da eliminazione del database su un database esistente per impedire l'eliminazione accidentale del database.
Abilita la protezione da eliminazione dei database
Puoi abilitare la protezione dall'eliminazione dei database utilizzando gcloud CLI, le librerie client e le API REST o RPC. Non puoi abilitare la protezione da eliminazione dei database utilizzando la console Google Cloud.
gcloud
Per abilitare l'impostazione di protezione dall'eliminazione di un database, esegui questo comando:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--enable-drop-protection [--async]
Sono necessarie le seguenti opzioni:
DATABASE_ID
- ID del database.
INSTANCE_ID
- ID dell'istanza per il database.
Le seguenti opzioni sono facoltative:
--async
- Restituisci subito, senza attendere il completamento dell'operazione in corso.
Librerie client
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Verificare se in un database è abilitata la protezione da eliminazione
Puoi determinare se per il tuo database è abilitata la protezione da eliminazione visualizzando la configurazione del database.
gcloud
Per verificare se in un database è abilitata la protezione da eliminazione, puoi eseguire il comando gcloud spanner databases describe
per ottenere informazioni dettagliate su un database oppure puoi eseguire gcloud spanner databases list
per ricevere informazioni dettagliate sui database all'interno di un'istanza.
gcloud spanner databases describe
projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID
Sono necessarie le seguenti opzioni:
PROJECT_ID
- ID del progetto per il database.
INSTANCE_ID
- ID dell'istanza per il database.
DATABASE_ID
- ID del database.
Se è abilitata la protezione da eliminazione, nell'output vedrai un parametro enableDropProtection: true
.
Disabilita la protezione da eliminazione del database
Puoi disabilitare la protezione da eliminazione del database se un database non richiede più questa protezione o se devi eliminare un database per cui è abilitata questa impostazione.
Se vuoi eliminare un'istanza che ha uno o più database con la protezione dall'eliminazione abilitata, devi prima disabilitare la protezione da eliminazione su tutti i database dell'istanza prima di poter eliminare l'istanza.
gcloud
Per disabilitare l'impostazione di protezione dall'eliminazione di un database, esegui questo comando:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--no-enable-drop-protection [--async]
Sono necessarie le seguenti opzioni:
DATABASE_ID
- ID del database.
INSTANCE_ID
- ID dell'istanza per il database.
Le seguenti opzioni sono facoltative:
--async
- Restituisci subito, senza attendere il completamento dell'operazione in corso.
Passaggi successivi
- Scopri come creare e gestire i database.
- Scopri di più su come eseguire il backup e il ripristino di un database.
- Scopri come eseguire aggiornamenti dello schema.