RESTORE MASTER KEY (Transact-SQL)

Si applica a:SQL Server

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

Importante

SQL Server 2022 (16.x) 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 (16.x) e versioni successive.

Convenzioni di sintassi Transact-SQL

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 (12.x) e versioni precedenti, vedere la 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 archivio BLOB di Azure'
Si applica a: SQL Server 2022 (16.x) e versioni successive
URL di archivio BLOB di Azure, con un 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 viene aperta oppure se SQL Server non è in grado di decrittografare alcune delle chiavi private crittografate con la chiave master.

Osservazioni:

Quando si ripristina la chiave master, in SQL Server vengono decrittografate tutte le chiavi crittografate con la chiave master attiva corrente. Tali elementi vengono poi crittografati nuovamente con la chiave master ripristinata. Si tratta di un'operazione che utilizza molte risorse e pertanto dovrebbe essere pianificata in periodi di carico ridotto. L'operazione di ripristino avrà esito negativo se la chiave master del database corrente non è aperta e non è possibile aprirla oppure se non è possibile decrittografare le eventuali chiavi crittografate con tale chiave master.

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 il database corrente non include alcuna chiave master, con l'esecuzione di RESTORE MASTER KEY verrà creata una chiave master. La nuova chiave master non verrà crittografata automaticamente con la chiave master del servizio.

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

  1. Si dispone di un account di archiviazione di Azure.

  2. Creare criteri di accesso archiviati e l'archivio di accesso condiviso.

  3. Creare credenziali di SQL Server 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 database AdventureWorks2022 da un file.

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

Nell'esempio seguente viene ripristinata la chiave master del database AdventureWorks2022 da una risorsa di archiviazione BLOB di Azure.

USE AdventureWorks2022;  
RESTORE MASTER KEY   
    FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2022_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
RESTORE SYMMETRIC KEY