Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Questo articolo descrive come ripristinare una chiave principale di database in SQL Server utilizzando Transact-SQL. La chiave principale del database cripta altre chiavi e certificati all'interno di un database. Se viene eliminato o corrotto, SQL Server potrebbe non riuscire a decifrare quelle chiavi, e i dati criptati con esse vengono effettivamente persi. Ripristina la chiave principale del database da un backup per recuperare l'accesso a quelle chiavi.
Limitations
Quando ripristini la chiave master del database, SQL Server decripta tutte le chiavi criptate con la chiave master del database attualmente attiva, e poi le cripta con la chiave master del database ripristinata. Programmate questa operazione ad alta intensità di risorse in un periodo di bassa domanda. Se la chiave principale attuale del database non è aperta o non può essere aperta, o se una delle chiavi criptate da essa non può essere decriptata, l'operazione di ripristino fallisce.
Se una qualsiasi delle decrittazioni fallisce, il ripristino fallisce. Puoi usare l'opzione FORCE per ignorare gli errori, ma questa opzione causa la perdita di qualsiasi dato che non può essere decriptato.
Se la chiave master del servizio cripta la chiave master del database, cripta anche la chiave master del database ripristinata.
Se non c'è una chiave master del database nel database attuale, RESTORE MASTER KEY si crea una chiave master del database. La chiave master del servizio non cripta automaticamente la nuova chiave master del database.
Autorizzazioni
È richiesta l'autorizzazione CONTROL per il database.
Ripristina la chiave principale del database
Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.
Recuperare una copia della chiave master del database da un supporto di backup fisico o da una directory nel file system locale.
Collegati all'istanza di SQL Server che contiene la chiave principale del database che vuoi ripristinare. È possibile connettersi a un'istanza di SQL Server usando qualsiasi strumento client di SQL Server familiare, ad esempio sqlcmd, SQL Server Management Studio (SSMS) o l'estensione MSSQL per Visual Studio Code.
Rivedi ed esegui lo script Transact-SQL seguente.
In questo esempio:
Ripristini la chiave master del database per
AdventureWorks2025a partire daC:\Temp\AdventureWorks2025_master_key.Hai impostato una nuova password
<new-password>di crittografia. Cambia queste impostazioni per adattarle al tuo ambiente.
Caution
Ti serve la nuova password per aprire la chiave master del database in futuro. Assicurati di conservare questa password in modo sicuro e protetto.
USE AdventureWorks2025; GO RESTORE MASTER KEY FROM FILE = 'C:\Backups\Keys\AdventureWorks2025_master_key' DECRYPTION BY PASSWORD = '<password>' ENCRYPTION BY PASSWORD = '<new-password>'; GO