BACKUP CERTIFICATE (Transact-SQL)

S’applique à : SYSTÈME de plateforme SQL Server Analytics (PDW)

Permet d'exporter un certificat dans un fichier.

Notes

Dans SQL Server 2022 (16.x), les certificats avec des clés privées peuvent être sauvegardés directement dans des fichiers ou des blobs binaires, ou restaurés à partir de ceux-ci, à l’aide des paires de clés publiques (PKCS) #12 ou du format PFX (Personal Information Exchange).

Le format PKCS #12 ou PFX est un format binaire permettant de stocker le certificat de serveur, tous les certificats intermédiaires et la clé privée dans un fichier. Les fichiers PFX comportent généralement des extensions du type .pfx et .p12. Cela facilite l’adhésion des clients aux meilleures pratiques de sécurité actuelles et aux normes de conformité qui interdisent le chiffrement RC4. Il n’est en effet plus nécessaire d’utiliser des outils de conversion comme PVKConverter (pour le format PVK ou DER).

Conventions de la syntaxe Transact-SQL

Syntaxe

-- Syntax for SQL Server  
  
BACKUP CERTIFICATE certname TO FILE = 'path_to_file'  
    [ WITH
      [FORMAT = 'PFX',]
      PRIVATE KEY   
      (   
        FILE = 'path_to_private_key_file' ,  
        ENCRYPTION BY PASSWORD = 'encryption_password'   
        [ , DECRYPTION BY PASSWORD = 'decryption_password' ]   
      )   
    ]  
-- Syntax for Parallel Data Warehouse  
  
BACKUP CERTIFICATE certname TO FILE ='path_to_file'  
      WITH PRIVATE KEY   
      (   
        FILE ='path_to_private_key_file',  
        ENCRYPTION BY PASSWORD ='encryption_password'   
      )   

Arguments

certname
Est le nom du certificat à sauvegarder.

TO FILE = 'path_to_file'
Spécifie le chemin d'accès complet, y compris le nom de fichier, du fichier dans lequel le certificat doit être enregistré. Il peut s’agir d’un chemin d’accès local ou d’un chemin d’accès UNC à un emplacement réseau. Si seul un nom de fichier est spécifié, le fichier sera enregistré dans le dossier de données utilisateur de l’instance par défaut (qui peut être ou non le dossier DATA SQL Server). Pour la base de données locale SQL Server Express, le dossier de données utilisateur par défaut de l’instance correspond au chemin d’accès spécifié par la variable d’environnement %USERPROFILE% pour le compte qui a créé l’instance.

WITH FORMAT = 'PFX'
S’applique à : SQL Server 2022 (16.x) et versions ultérieures
Spécifie l’exportation d’un certificat et de sa clé privée vers un fichier PFX. Cette clause est facultative.

WITH PRIVATE KEY Spécifie que la clé privée du certificat doit être enregistrée dans un fichier. Cette clause est facultative.

FILE = 'path_to_private_key_file'
Spécifie le chemin d'accès complet, y compris le nom de fichier, du fichier dans lequel la clé privée doit être enregistrée. Il peut s’agir d’un chemin d’accès local ou d’un chemin d’accès UNC à un emplacement réseau. Si seul un nom de fichier est spécifié, le fichier sera enregistré dans le dossier de données utilisateur de l’instance par défaut (qui peut être ou non le dossier DATA SQL Server). Pour la base de données locale SQL Server Express, le dossier de données utilisateur par défaut de l’instance correspond au chemin d’accès spécifié par la variable d’environnement %USERPROFILE% pour le compte qui a créé l’instance.

ENCRYPTION BY PASSWORD = 'encryption_password'
Mot de passe utilisé pour chiffrer la clé privée avant de l'enregistrer dans le fichier de sauvegarde. Le mot de passe est sujet à des vérifications de la complexité.

DECRYPTION BY PASSWORD = 'decryption_password'
Mot de passe utilisé pour déchiffrer la clé privée avant de sauvegarder la clé. Cet argument n’est pas nécessaire si le certificat est chiffré par la clé principale.

Notes

Si la clé privée est chiffrée au moyen d'un mot de passe dans la base de données, le mot de passe de déchiffrement doit être spécifié.

Lorsque vous sauvegardez la clé privée dans un fichier, un chiffrement est nécessaire. Le mot de passe utilisé pour protéger la clé privée dans le fichier est différent de celui qui sert à chiffrer la clé privée du certificat dans la base de données.

Les clés privées sont enregistrées au format de fichier PVK.

Pour restaurer un certificat sauvegardé, avec ou sans la clé privée, utilisez l’instruction CREATE CERTIFICATE.

Pour restaurer une clé privée pour un certificat existant dans la base de données, utilisez l’instruction ALTER CERTIFICATE.

Lors de l’exécution d’une sauvegarde, les fichiers seront mis sur une liste de contrôle d’accès du compte de service de l’instance SQL Server. Si vous souhaitez restaurer le certificat sur un serveur en cours d’exécution sous un compte différent, vous devrez ajuster les autorisations sur les fichiers afin qu’ils puissent être lus par le nouveau compte.

Autorisations

Requiert l'autorisation CONTROL sur le certificat et la connaissance du mot de passe utilisé pour chiffrer la clé privée. Si seule la partie publique du certificat est sauvegardée, cette commande requiert quelques autorisations sur le certificat ; l’autorisation VIEW sur le certificat ne doit pas avoir été refusée à l’appelant.

Exemples

R. Exportation d'un certificat dans un fichier

Dans l'exemple ci-dessous, un certificat est exporté dans un fichier.

BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert';  
GO  

B. Exportation d'un certificat et d'une clé privée

Dans l'exemple ci-dessous, la clé privée du certificat sauvegardé sera déchiffrée au moyen du mot de passe 997jkhUbhk$w4ez0876hKHJH5gh.

BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert'  
    WITH PRIVATE KEY ( FILE = 'c:\storedkeys\sales05key' ,   
    ENCRYPTION BY PASSWORD = '997jkhUbhk$w4ez0876hKHJH5gh' );  
GO  

C. Exportation d'un certificat qui possède une clé privée chiffrée

Dans l'exemple ci-dessous, la clé privée du certificat est chiffrée dans la base de données. La clé privée doit être déchiffrée au moyen du mot de passe 9875t6#6rfid7vble7r. Lorsque le certificat est stocké dans le fichier de sauvegarde, la clé privée est chiffrée au moyen du mot de passe 9n34khUbhk$w4ecJH5gh.

BACKUP CERTIFICATE sales09 TO FILE = 'c:\storedcerts\sales09cert'   
    WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = '9875t6#6rfid7vble7r' ,  
    FILE = 'c:\storedkeys\sales09key' ,   
    ENCRYPTION BY PASSWORD = '9n34khUbhk$w4ecJH5gh' );  
GO  

D. Exporter un certificat et de sa clé privée vers un fichier PFX

BACKUP CERTIFICATE Shipping04 TO FILE = 'c:\storedcerts\shipping04cert.pfx'
WITH  
    FORMAT = 'PFX',  
    PRIVATE KEY ( 
ENCRYPTION BY PASSWORD = '9n34khUbhk$w4ecJH5gh',  
ALGORITHM = 'AES_256'
    )

Voir aussi

CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)