Questa pagina descrive come proteggere i database Spanner dall'eliminazione accidentale.
La protezione da eliminazione dei database 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. Abilitando la protezione da eliminazione dei database, puoi proteggere i database importanti per le tue applicazioni 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 di protezione da eliminazione è disabilitata quando crei il nuovo database. Puoi abilitare l'impostazione di protezione da eliminazione dopo la creazione del database. Inoltre, puoi abilitare questa impostazione su un database esistente. Se vuoi proteggere più database, abilita l'impostazione su ogni database singolarmente. L'abilitazione o la disabilitazione della protezione da eliminazione non influisce sulle prestazioni del database. Se devi eliminare un database per il quale è abilitata la protezione, 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 i database ripristinati da un backup non ereditano l'impostazione di protezione da eliminazione del database di origine. Dopo aver ripristinato un database da un backup, devi abilitare separatamente la protezione da eliminazione del database.
Se elimini il progetto, la protezione da eliminazione dei database Spanner non impedisce l'eliminazione del database o dell'istanza. Per saperne di più su cosa succede quando elimini il progetto, consulta l'articolo relativo all'arresto (eliminazione) dei progetti.
Controllo dell'accesso con IAM
Per abilitare l'impostazione di protezione da eliminazione del database, devi disporre di determinate autorizzazioni IAM.
Devi disporre dell'autorizzazione spanner.databases.update per abilitare o disabilitare la protezione da eliminazione dei database. Se devi solo 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 Spanner
roles/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 impedire l'eliminazione accidentale del database.
Abilitare 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 Google Cloud console.
gcloud
Per abilitare l'impostazione di protezione da eliminazione di un database, esegui il comando seguente:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--enable-drop-protection [--async]
Le seguenti opzioni sono obbligatorie:
DATABASE_ID- ID del database.
INSTANCE_ID- ID dell'istanza per il database.
Le seguenti opzioni sono facoltative:
--async- Restituisce immediatamente, senza attendere il completamento dell'operazione in corso.
Librerie client
C++
C#
Vai
Java
Node.js
PHP
Python
Ruby
Verificare se la protezione da eliminazione è abilitata per un database
Puoi determinare se la protezione da eliminazione è abilitata per il tuo database visualizzando la configurazione del database.
gcloud
Per verificare se la protezione da eliminazione è abilitata per un database, puoi eseguire il comando gcloud spanner databases describe per ottenere informazioni dettagliate su un database oppure il comando 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 seguenti 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, nell'output viene visualizzato un parametro enableDropProtection: true.
Disabilitare la protezione da eliminazione dei database
Puoi disabilitare la protezione da eliminazione dei database se un database non ha più bisogno di questa protezione o se devi eliminare un database per il quale questa impostazione è abilitata.
Se vuoi eliminare un'istanza che contiene uno o più database con la protezione da 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 da eliminazione di un database, esegui il comando seguente:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--no-enable-drop-protection [--async]
Le seguenti opzioni sono obbligatorie:
DATABASE_ID- ID del database.
INSTANCE_ID- ID dell'istanza per il database.
Le seguenti opzioni sono facoltative:
--async- Restituisce 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 apportare aggiornamenti dello schema.