Questa pagina descrive come proteggere i database Spanner da eliminazioni accidentali.
La protezione dall'eliminazione del database 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. Se abiliti la protezione da eliminazione del database, puoi salvaguardare i database importanti per la tua applicazione e i tuoi servizi. Utilizza la protezione da eliminazione del database insieme al recupero point-in-time e alle funzionalità di backup per fornire un insieme completo di funzionalità di protezione dei dati per i tuoi database Spanner.
Per impostazione predefinita, l'impostazione di protezione da eliminazione è disattivata quando crei il nuovo database. Puoi attivare l'impostazione di protezione da eliminazione dopo la creazione del database. Inoltre, puoi attivare questa impostazione in un database esistente. Se vuoi proteggere più database, attiva l'impostazione su ogni database singolarmente. L'attivazione o la disattivazione della protezione dall'eliminazione non influisce sulle prestazioni del database. Se devi eliminare un database per cui è abilitata la protezione, devi disabilitarla prima di poter eliminare il database.
Limitazioni
Non puoi attivare la protezione da eliminazione del database nei seguenti scenari:
- Se il database è in fase di eliminazione.
- Se il database viene ripristinato da un backup. Dopo il completamento dell'operazione di ripristino, puoi attivare la protezione del database.
Inoltre, i backup di un database e i database ripristinati da un backup non ereditano l'impostazione di protezione dall'eliminazione del database di origine. Dopo aver ripristinato un database da un backup, devi attivare separatamente la protezione dall'eliminazione del database.
Se elimini il progetto, la protezione dall'eliminazione del database Spanner non impedisce l'eliminazione del database o dell'istanza. Per saperne di più su cosa succede quando elimini il progetto, vedi Chiusura (eliminazione) dei progetti.
Controllo dell'accesso con IAM
Per abilitare l'impostazione di protezione dall'eliminazione del database, devi disporre di determinate autorizzazioni IAM.
Devi disporre dell'autorizzazione spanner.databases.update
per abilitare o
disabilitare la protezione da eliminazione del 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, vedi Applicare le autorizzazioni IAM.
Se hai il ruolo predefinito Amministratore database Spanner
roles/spanner.databaseAdmin
per il tuo database, puoi aggiornare e attivare la protezione da eliminazione del database.
Puoi attivare l'impostazione di protezione da eliminazione del database su un database esistente per impedire l'eliminazione accidentale del database.
Abilita la protezione da eliminazione del database
Puoi attivare la protezione dall'eliminazione del database utilizzando gcloud CLI, le librerie client e le API REST o RPC. Non puoi abilitare la protezione da eliminazione del 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 richieste le seguenti opzioni:
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#
Go
Java
Node.js
PHP
Python
Ruby
Controlla se per un database è abilitata la protezione dall'eliminazione
Puoi determinare se la protezione da eliminazione del database è attivata visualizzando la configurazione del database.
gcloud
Per verificare se la protezione dall'eliminazione è attivata per un database, puoi eseguire il comando
gcloud spanner databases describe
per ottenere informazioni dettagliate
su un database oppure puoi eseguire 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
Sono richieste 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 la protezione dall'eliminazione è abilitata, 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 ne ha più bisogno o se devi eliminare un database per il quale è abilitata questa impostazione.
Se vuoi eliminare un'istanza che contiene uno o più database con la protezione dall'eliminazione abilitata, devi prima disabilitare la protezione dall'eliminazione su tutti i database dell'istanza prima di poterla eliminare.
gcloud
Per disattivare 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 richieste le seguenti opzioni:
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 eseguire aggiornamenti dello schema.