Ripristino di una chiave master del databaseRestore a Database Master Key

In questo argomento viene descritto come ripristinare una chiave master del database in SQL Server 2017SQL Server 2017 tramite Transact-SQLTransact-SQL.This topic describes how to restore the database master key in SQL Server 2017SQL Server 2017 by using Transact-SQLTransact-SQL.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • Quando si ripristina la chiave master, in SQL ServerSQL Server vengono decrittografate tutte le chiavi crittografate con la chiave master attiva corrente. Tali elementi venogno poi crittografati nuovamente con la chiave master ripristinata.When the master key is restored, SQL ServerSQL Server decrypts all the keys that are encrypted with the currently active master key, and then encrypts these keys with the restored master key. Si tratta di un'operazione che utilizza molte risorse e pertanto dovrebbe essere pianificata in periodi di carico ridotto.This resource-intensive operation should be scheduled during a period of low demand. 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.If the current database master key is not open or cannot be opened, or if any of the keys that are encrypted by it cannot be decrypted, the restore operation fails.

  • In caso di esito negativo di una qualsiasi delle operazioni di decrittografia, il ripristino avrà esito negativo.If any one of the decryptions fails, the restore will fail. È possibile utilizzare l'opzione FORCE per ignorare eventuali errori, ma in questo caso andranno perduti tutti i dati che non possono essere decrittografati.You can use the FORCE option to ignore errors, but this option will cause the loss of any data that cannot be decrypted.

  • 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.If the master key was encrypted by the service master key, the restored master key will also be encrypted by the service master key.

  • Se il database corrente non include alcuna chiave master, con l'esecuzione di RESTORE MASTER KEY verrà creata una chiave master.If there is no master key in the current database, RESTORE MASTER KEY creates a master key. La nuova chiave master non verrà crittografata automaticamente con la chiave master del servizio.The new master key will not be automatically encrypted with the service master key.

Sicurezza Security

Autorizzazioni Permissions

È richiesta l'autorizzazione CONTROL per il database.Requires CONTROL permission on the database.

Utilizzo di SQL Server Management Studio con Transact-SQL Using SQL Server Management Studio with Transact-SQL

Per ripristinare la chiave master del databaseTo restore the database master key

  1. Recuperare una copia della chiave master del database da un supporto di backup fisico o da una directory nel file system locale.Retrieve a copy of the backed-up database master key, either from a physical backup medium or a directory on the local file system.

  2. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  3. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  4. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

    -- Restores the database master key of the AdventureWorks2012 database.  
    USE AdventureWorks2012;  
    GO  
    RESTORE MASTER KEY   
        FROM FILE = 'c:\backups\keys\AdventureWorks2012_master_key'   
        DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
        ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
    GO  
    

    Nota

    Il percorso del file della chiave e della password della chiave (se esistente) sarà diverso da quello indicato in precedenza.The file path to the key and the key's password (if it exists) will be different than what is indicated above. Assicurarsi che entrambi siano specifici della configurazione della chiave e del server in uso.Please make sure that both are specific to your server and key set-up.

    Per altre informazioni, vedere RESTORE MASTER KEY (Transact-SQL)For more information, see RESTORE MASTER KEY (Transact-SQL)