BACKUP CERTIFICATE (Transact-SQL)

Se aplica a:SQL ServerAnalytics Platform System (PDW)

Exporta un certificado a un archivo.

Nota

En SQL Server 2022 (16.x), pueden crearse copias de seguridad de certificados con claves privadas o restaurarse directamente en archivos o blobs binarios mediante pares de claves públicas (PKCS) #12 o el formato de intercambio de información personal (PFX).

El formato PKCS #12 o PFX es un formato binario para almacenar el certificado de servidor, los certificados intermedios y la clave privada en un archivo. Los archivos PFX suelen tener extensiones como .pfx y .p12. Esto facilita a los clientes que cumplan las directrices de procedimientos recomendados de seguridad actuales y los estándares de cumplimiento que prohíben el cifrado RC4, eliminando la necesidad de usar herramientas de conversión como PVKConverter (para el formato PVK o DER).

Convenciones de sintaxis de Transact-SQL

Sintaxis

-- 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'   
      )   

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

certname
Es el nombre del certificado del que se va a realizar una copia de seguridad.

TO FILE = 'path_to_file'
Especifica la ruta de acceso completa, incluido el nombre de archivo, al archivo en el que se almacenará el certificado. Esta ruta de acceso puede ser una ruta de acceso local o una ruta UNC a una ubicación de red. Si solo se especifica un nombre de archivo, el archivo se guardará en la carpeta de datos de usuario predeterminada de la instancia (que puede ser o no ser la carpeta Data de SQL Server). Para LocalDB de SQL Server Express, la carpeta de datos de usuario predeterminada de la instancia es la ruta de acceso especificada por la variable de entorno %USERPROFILE% para la cuenta que ha creado la instancia.

WITH FORMAT = 'PFX'
Se aplica a: SQL Server 2022 (16.x) y versiones posteriores
Especifica la exportación de un certificado y su clave privada a un archivo PFX. Esta cláusula es opcional.

WITH PRIVATE KEY Especifica que la clave privada del certificado se tiene que guardar en un archivo. Esta cláusula es opcional.

FILE = 'path_to_private_key_file'
Especifica la ruta de acceso completa, incluido el nombre de archivo, al archivo en el que se almacenará la clave privada. Esta ruta de acceso puede ser una ruta de acceso local o una ruta UNC a una ubicación de red. Si solo se especifica un nombre de archivo, el archivo se guardará en la carpeta de datos de usuario predeterminada de la instancia (que puede ser o no ser la carpeta Data de SQL Server). Para LocalDB de SQL Server Express, la carpeta de datos de usuario predeterminada de la instancia es la ruta de acceso especificada por la variable de entorno %USERPROFILE% para la cuenta que ha creado la instancia.

ENCRYPTION BY PASSWORD = 'encryption_password'
Es la contraseña que se utiliza para cifrar la clave privada antes de escribir la clave en el archivo de copia de seguridad. La contraseña se somete a comprobaciones de complejidad.

DECRYPTION BY PASSWORD = 'decryption_password'
Es la contraseña que se utiliza para descifrar la clave privada antes de realizar una copia de seguridad de la clave. Este argumento no es necesario si el certificado está cifrado con la clave maestra.

Comentarios

Si la clave privada se cifra con una contraseña en la base de datos, es necesario especificar la contraseña de descifrado.

Para realizar una copia de seguridad de la clave privada en un archivo es necesario el cifrado. La contraseña utilizada para proteger la clave privada del archivo no es la misma que la usada para cifrar la clave privada del certificado en la base de datos.

Las claves privadas se guardan en un formato de archivo PVK.

Para restaurar la copia de seguridad de un certificado, con o sin clave privada, use la instrucción CREATE CERTIFICATE.

Para restaurar una clave privada en un certificado existente en la base de datos, use la instrucción ALTER CERTIFICATE.

Al realizar una copia de seguridad, los archivos se agregan a la lista de control de acceso de la cuenta de servicio de la instancia de SQL Server. Si es necesario restaurar el certificado en un servidor que se ejecuta en otra cuenta, deberá ajustar los permisos en los archivos para que la nueva cuenta pueda leerlos.

Permisos

Requiere el permiso CONTROL en el certificado y conocimiento de la contraseña que se utiliza para cifrar la clave privada. Si solo se hace una copia de seguridad de la parte pública del certificado, este comando necesita algún permiso en el certificado y que el llamador no haya denegado el permiso VIEW en el certificado.

Ejemplos

A. Exportar un certificado a un archivo

El siguiente ejemplo exporta un certificado a un archivo.

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

B. Exportar un certificado y una clave privada

En el siguiente ejemplo, la clave privada del certificado del que se realiza una copia de seguridad se cifra con la contraseña 997jkhUbhk$w4ez0876hKHJH5gh.

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

C. Exportar un certificado con una clave privada cifrada

En el siguiente ejemplo, la clave privada del certificado se cifra en la base de datos. La clave privada debe descifrarse con la contraseña 9875t6#6rfid7vble7r. Cuando se guarda el certificado en el archivo de copia de seguridad, la clave privada se cifra con la contraseña 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. Exportación de un certificado y su clave privada a un archivo PFX

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

Vea también

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)