Questa pagina descrive come proteggere i database Spanner dall'eliminazione accidentale.
La protezione da eliminazione dei database di Spanner impedisce l'eliminazione accidentale dei database esistenti da parte di utenti o account di servizio che dispongono delle autorizzazioni IAM necessarie per eliminare il database. Se attivi la protezione da eliminazione dei database, puoi salvaguardare i database importanti per le tue applicazioni e i tuoi servizi. Utilizza la protezione da eliminazione dei database insieme al recupero point-in-time e alle funzionalità di 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 dopo il completamento 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'attivazione o la disattivazione della protezione da eliminazione non ha alcun impatto sulle prestazioni del database. Se devi eliminare un database in cui è abilitata la protezione del database, devi disabilitare la protezione prima di eliminarlo.
Limitazioni
Non puoi abilitare la protezione da eliminazione dei database nei seguenti scenari:
- Se il database è in fase di eliminazione.
- Se il database viene ripristinato da un backup. (Una volta completata l'operazione di ripristino, puoi abilitare la protezione del database).
Inoltre, i backup di un database e di database ripristinati da un backup non ereditano l'impostazione di protezione da eliminazione del database del database di origine. Dopo aver ripristinato un database da un backup, devi abilitare separatamente la relativa protezione dall'eliminazione del database.
Se elimini il progetto, la protezione da eliminazione del database Spanner non impedisce l'eliminazione del database o dell'istanza. Per ulteriori informazioni su cosa succede quando elimini il progetto, consulta l'articolo Arrestare (eliminazione) dei progetti.
Controllo dell'accesso con IAM
Per attivare l'impostazione della protezione da 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 hai solo bisogno di visualizzare lo stato della configurazione del database, devi disporre dell'autorizzazione spanner.databases.list
o spanner.databases.get
. Per informazioni su come concedere le autorizzazioni IAM di Spanner, consulta Applicare le autorizzazioni IAM.
Se disponi del ruolo predefinito Amministratore database Spannerroles/spanner.databaseAdmin
per il tuo 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 evitare l'eliminazione accidentale del database.
Abilita la protezione da eliminazione dei database
Puoi abilitare la protezione da 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 della protezione da eliminazione di un database, esegui questo comando:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--enable-drop-protection [--async]
Le opzioni sono obbligatorie:
DATABASE_ID
- ID del database.
INSTANCE_ID
- ID dell'istanza per il database.
Le seguenti opzioni sono facoltative:
--async
- Restituisci immediatamente, 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 nel 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 eseguire gcloud spanner databases list
per ottenere informazioni dettagliate sui database all'interno di un'istanza.
gcloud spanner databases describe
projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID
Le opzioni sono obbligatorie:
PROJECT_ID
- ID del progetto per il database.
INSTANCE_ID
- ID dell'istanza per il database.
DATABASE_ID
- ID del database.
Se la protezione da eliminazione è abilitata, vedrai un parametro enableDropProtection: true
nell'output.
Disabilita la protezione dall'eliminazione dei database
Puoi disabilitare la protezione da eliminazione del database se un database non ha più bisogno di questa protezione o se devi eliminare un database con questa impostazione abilitata.
Se vuoi eliminare un'istanza in cui sono presenti uno o più database in cui è abilitata la protezione da eliminazione, devi prima disabilitare la protezione da eliminazione in tutti i database dell'istanza per poter eliminare l'istanza.
gcloud
Per disabilitare l'impostazione della protezione dall'eliminazione di un database, esegui questo comando:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--no-enable-drop-protection [--async]
Le opzioni sono obbligatorie:
DATABASE_ID
- ID del database.
INSTANCE_ID
- ID dell'istanza per il database.
Le seguenti opzioni sono facoltative:
--async
- Restituisci immediatamente, 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.