Questa pagina descrive come proteggere i database Spanner dall'eliminazione accidentale.
La protezione dell'eliminazione dei 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 attivi la protezione dell'eliminazione dei database, puoi salvaguardare i database importanti per la tua applicazione e i tuoi servizi. Utilizza la protezione dell'eliminazione dei database insieme al ripristino 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 abilitare l'impostazione di protezione dall'eliminazione dopo la creazione del database. Inoltre, puoi attivare questa impostazione su 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 ha alcun impatto sulle prestazioni del database. Se devi eliminare un database per il quale è abilitata la protezione, devi disattivare la protezione prima di poter eliminare il database.
Limitazioni
Non puoi attivare la protezione dall'eliminazione del database nei seguenti scenari:
- Se il database viene eliminato.
- Se il database viene ripristinato da un backup. Al termine 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 del database di origine. Dopo aver ripristinato un database da un backup, devi attivare la protezione dell'eliminazione del database separatamente.
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 un progetto, consulta l'articolo relativo all'arresto (eliminazione) dei progetti.
Controllo dell'accesso con IAM
Per attivare l'impostazione di protezione dall'eliminazione del database, devi disporre di determinate autorizzazioni IAM.
Per abilitare o disattivare la protezione dall'eliminazione del database, devi disporre dell'autorizzazione spanner.databases.update
. 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 Amministratore database Spannerroles/spanner.databaseAdmin
predefinito per il tuo database, puoi aggiornare e attivare la protezione dell'eliminazione del database.
Puoi attivare l'impostazione di protezione dall'eliminazione del database su un database esistente per impedirne l'eliminazione accidentale.
Attivare la protezione da eliminazione del database
Puoi attivare la protezione dell'eliminazione del database utilizzando gcloud CLI, le librerie client e le API REST o RPC. Non puoi attivare la protezione dell'eliminazione del database utilizzando la console Google Cloud .
gcloud
Per attivare l'impostazione di protezione dall'eliminazione di un database, esegui il seguente 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
- Torna immediatamente senza attendere il completamento dell'operazione in corso.
Librerie client
C++
C#
Vai
Java
Node.js
PHP
Python
Ruby
Controllare se per un database è abilitata la protezione dall'eliminazione
Puoi determinare se la protezione dall'eliminazione è attivata per il tuo database visualizzando la relativa configurazione.
gcloud
Per verificare se in un database è attiva la protezione dall'eliminazione, 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
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 da eliminazione è abilitata, nell'output verrà visualizzato un parametro enableDropProtection: true
.
Disattivare la protezione dall'eliminazione del database
Puoi disattivare la protezione dall'eliminazione del database se un database non ha più bisogno di questa protezione o se devi eliminare un database per il quale è attivata questa impostazione.
Se vuoi eliminare un'istanza con uno o più database con la protezione dall'eliminazione abilitata, devi prima disattivare la protezione dall'eliminazione su tutti i database dell'istanza prima di poter eliminare l'istanza.
gcloud
Per disattivare l'impostazione di protezione dall'eliminazione di un database, esegui il seguente 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
- Torna 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.