RESTORE MASTER KEY (Transact-SQL)

Si applica a: SQL Server (tutte le versioni supportate)

Importa una chiave master del database da un file di backup.

Importante

SQL Server 2022 introduce il supporto di backup e ripristino per la chiave master del database da e verso un archivio BLOB di Azure. La URL sintassi è disponibile solo per SQL Server 2022 o versioni successive.

Icona di collegamento argomento IconaTransact-SQL Sintassi Transact-SQL Convenzioni

Sintassi

RESTORE MASTER KEY FROM 
  {
    FILE = 'path_to_file'
  | URL = 'Azure Blob storage URL'
  }  
    DECRYPTION BY PASSWORD = 'password'  
    ENCRYPTION BY PASSWORD = 'password'  
    [ FORCE ]  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

FILE ='path_to_file'
Specifica il percorso completo, nome file incluso, della chiave master del database archiviata. path_to_file può essere un percorso locale o un percorso UNC di rete.

URL ='URL di archiviazione BLOB di Azure'
Si applica a: SQL Server 2022 o versioni successive
URL per l'archiviazione BLOB di Azure, nel formato simile a https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak.

DECRYPTION BY PASSWORD ='password'
Specifica la password necessaria per decrittografare la chiave master del database che verrà importata da un file.

ENCRYPTION BY PASSWORD ='password'
Specifica la password utilizzata per crittografare la chiave master del database dopo averla caricata nel database.

FORCE
Specifica che il processo RESTORE deve continuare, anche se la chiave master del database corrente non è aperta o se SQL Server non può decrittografare alcune delle chiavi private crittografate con esso.

Commenti

Quando la chiave master viene ripristinata, SQL Server decrittografa tutte le chiavi crittografate con la chiave master attualmente attiva e quindi crittografa queste chiavi con la chiave master ripristinata. Si tratta di un'operazione che utilizza molte risorse e pertanto dovrebbe essere pianificata in periodi di carico ridotto. Se la chiave master del database corrente non è aperta o non può essere aperta o se non è possibile decrittografare una delle chiavi crittografate da esso non può essere decrittografata, l'operazione di ripristino non riesce.

Utilizzare l'opzione FORCE solo se la chiave master è irrecuperabile o se la decrittografia ha esito negativo. Le informazioni crittografate esclusivamente da una chiave irrecuperabile andranno perdute.

Se la chiave master è stata crittografata con la chiave master del servizio, anche la chiave master ripristinata verrà crittografata con la chiave master del servizio.

Se nel database corrente non è presente alcuna chiave master, RESTORE MASTER KEY crea una chiave master. La nuova chiave master non verrà crittografata automaticamente con la chiave master del servizio.

Se si usa SQL Server 2022 o versioni successive e si vuole ripristinare la chiave master del database da un archivio BLOB di Azure, si applicano i prerequisiti seguenti:

  1. Avere un account di archiviazione di Azure.

  2. Creare criteri di accesso archiviati e archiviazione di accesso condiviso.

  3. Creare una SQL Server credenziali usando una firma di accesso condiviso.

    Per altre informazioni, vedere Esercitazione: Usare Archiviazione BLOB di Azure con SQL Server.

Autorizzazioni

È richiesta l'autorizzazione CONTROL per il database.

Esempi

Nell'esempio seguente viene ripristinata la chiave master del AdventureWorks2012 database del database da un file.

USE AdventureWorks2012;  
RESTORE MASTER KEY   
    FROM FILE = 'c:\backups\keys\AdventureWorks2012_master_key'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

Nell'esempio seguente viene ripristinata la chiave master del AdventureWorks2012 database del database da un'archiviazione BLOB di Azure.

USE AdventureWorks2012;  
RESTORE MASTER KEY   
    FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2012_master_key.bak'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

Vedi anche

CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
Gerarchia di crittografia
RIPRISTINA CHIAVE SIMMETRICA