RESTORE MASTER KEY (Transact-SQL)

S'applique à : SQL Server

Permet d'importer la clé principale d'une base de données à partir d'un fichier de sauvegarde.

Important

SQL Server 2022 (16.x) introduit la prise en charge de la sauvegarde et de la restauration de la clé principale de base de données vers et depuis un stockage Blob Azure. La syntaxe URL est disponible uniquement pour SQL Server 2022 (16.x) et versions ultérieures.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

FILE ='path_to_file'
Spécifie le chemin d'accès complet, y compris le nom de fichier, de la clé principale de base de données stockée. path_to_file peut être un chemin local ou un chemin UNC d’un emplacement réseau.

URL ='URL du stockage Blob Azure'
S’applique à : SQL Server 2022 (16.x) et versions ultérieures
L’URL de votre stockage Blob Azure a-t-elle un format similaire à https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak.

DECRYPTION BY PASSWORD ='password'
Spécifie le mot de passe requis pour déchiffrer la clé principale de base de données à importer à partir d'un fichier.

ENCRYPTION BY PASSWORD ='password'
Spécifie le mot de passe utilisé pour chiffrer la clé principale de base de données après son chargement dans la base de données.

FORCE
Indique que le processus RESTORE doit continuer, même si la clé principale de la base de données en cours n'est pas ouverte ou si SQL Server ne peut pas déchiffrer certaines clés privées chiffrées au moyen de cette clé.

Remarques

Une fois la clé principale restaurée, SQL Server déchiffre toutes les clés chiffrées au moyen de la clé principale active, puis chiffre ces clés au moyen de la clé principale restaurée. Cette opération gourmande en ressources doit être planifiée au cours d'une période de faible demande. Si la clé principale de la base de données active n’est pas ouverte ou ne peut pas l’être ou si l’une des clés chiffrées à l’aide de cette clé principale ne peut pas être déchiffrée, l’opération de restauration échoue.

Utilisez l'option FORCE seulement si la clé principale ne peut pas être récupérée ou si le déchiffrement échoue. Les données chiffrées uniquement à l'aide d'une clé irrécupérable sont perdues.

Si la clé principale a été chiffrée à l'aide de la clé principale du service, la clé principale restaurée sera également chiffrée à l'aide de la clé principale du service.

S’il n’existe aucune clé principale dans la base de données active, l’instruction RESTORE MASTER KEY en crée une. La nouvelle clé principale n’est pas automatiquement chiffrée avec la clé principale du service.

Si vous utilisez SQL Server 2022 (16.x) ou version ultérieure et que vous souhaitez restaurer la clé principale de la base de données dans un stockage Blob Azure, les prérequis sont les suivants :

  1. Avoir un compte de stockage Azure.

  2. Créer une stratégie d’accès stockée et un stockage d’accès partagé.

  3. Créer des informations d’identification SQL Server à l’aide d’une signature d’accès partagé.

    Pour plus d'informations, consultez leTutoriel : utiliser le Stockage Blob Azure avec SQL Server.

Autorisations

Requiert l'autorisation CONTROL sur la base de données.

Exemples

Dans l'exemple ci-dessous, la clé principale de la base de données AdventureWorks2022 est restaurée à partir d’un fichier.

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

Dans l'exemple ci-dessous, la clé principale de la base de données AdventureWorks2022 est restaurée à partir d’un stockage Blob 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  

Voir aussi

CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
Hiérarchie de chiffrement
RESTORE SYMMETRIC KEY