BACKUP CERTIFICATE (Transact-SQL)

Aplica-se a:SQL ServerSistema de Plataforma de Análise (PDW)

Exporta um certificado para um ficheiro.

Observação

No SQL Server 2022 (16.x), é possível fazer backup ou restaurar certificados com chaves privadas diretamente de e para arquivos ou blobs binários usando o formato PKCS (pares de chaves públicas) #12 ou PFX (troca de informações pessoais).

O formato PKCS #12 ou PFX é um formato binário para armazenar o certificado do servidor, quaisquer certificados intermediários e a chave privada em um arquivo. Os arquivos PFX geralmente têm extensões como .pfx e .p12. Isso torna mais fácil para os clientes aderirem às atuais diretrizes de práticas recomendadas de segurança e padrões de conformidade que proíbem a criptografia RC4, eliminando a necessidade de usar ferramentas de conversão, como PVKConverter (para o formato PVK ou DER).

Transact-SQL convenções de sintaxe

Syntax

-- 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
É o nome do certificado para fazer backup.

TO FILE = 'path_to_file'
Especifica o caminho completo, incluindo o nome do ficheiro, do ficheiro onde o certificado deve ser guardado. Este caminho pode ser um caminho local ou um caminho UNC para uma localização na rede. Se apenas um nome de ficheiro for especificado, o ficheiro será guardado na pasta de dados de utilizador por defeito da instância (que pode ou não ser a pasta DATA do SQL Server). Para o SQL Server Express LocalDB, a pasta de dados de utilizador predefinida da instância é o caminho especificado pela %USERPROFILE% variável de ambiente para a conta que criou a instância.

COM FORMATO = 'PFX'
Aplica-se a: SQL Server 2022 (16.x) e posterior
Especifica a exportação de um certificado e da sua chave privada para um ficheiro PFX. Esta cláusula é opcional.

COM CHAVE PRIVADA Especifica que a chave privada do certificado deve ser guardada num ficheiro. Esta cláusula é opcional.

FICHEIRO = 'path_to_private_key_file'
Especifica o caminho completo, incluindo o nome do ficheiro, do ficheiro onde a chave privada deve ser guardada. Este caminho pode ser um caminho local ou um caminho UNC para uma localização na rede. Se apenas um nome de ficheiro for especificado, o ficheiro será guardado na pasta de dados de utilizador por defeito da instância (que pode ou não ser a pasta DATA do SQL Server). Para o SQL Server Express LocalDB, a pasta de dados de utilizador predefinida da instância é o caminho especificado pela %USERPROFILE% variável de ambiente para a conta que criou a instância.

ENCRIPTAÇÃO POR PALAVRA-PASSE = 'encryption_password'
É a palavra-passe usada para encriptar a chave privada antes de escrever a chave no ficheiro de backup. A palavra-passe está sujeita a verificações de complexidade.

DESENCRIPTAÇÃO POR PALAVRA-PASSE = 'decryption_password'
É a palavra-passe usada para desencriptar a chave privada antes de fazer backup da chave. Este argumento não é necessário se o certificado for encriptado pela chave mestra.

Remarks

Se a chave privada estiver encriptada com uma palavra-passe na base de dados, a palavra-passe de desencriptação deve ser especificada.

Quando faz backup da chave privada de um ficheiro, é necessária encriptação. A palavra-passe usada para proteger a chave privada no ficheiro não é a mesma que é usada para encriptar a chave privada do certificado na base de dados.

As chaves privadas são guardadas no formato de ficheiro PVK.

Para restaurar um certificado com backup, com ou sem a chave privada, use a CREATE CERTIFICATE instrução.

Para restaurar uma chave privada de um certificado existente na base de dados, utilize a ALTER CERTIFICATE instrução.

Ao realizar uma cópia de segurança, os ficheiros serão ACLados à conta de serviço da instância do SQL Server. Se precisares de restaurar o certificado num servidor a correr com outra conta, terás de ajustar as permissões dos ficheiros para que possam ser lidos pela nova conta.

Permissions

Requer permissão CONTROL no certificado e conhecimento da palavra-passe usada para encriptar a chave privada. Se apenas a parte pública do certificado estiver guardada, este comando requer alguma permissão no certificado e que o interlocutor não tenha sido negado VIEW a permissão no certificado.

Examples

A. Exportar um certificado para um ficheiro

O exemplo seguinte exporta um certificado para um ficheiro.

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

B. Exportação de um certificado e de uma chave privada

No exemplo seguinte, a chave privada do certificado que é copiado será encriptada com a palavra-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. Exportação de um certificado que tem uma chave privada encriptada

No exemplo seguinte, a chave privada do certificado é encriptada na base de dados. A chave privada deve ser desencriptada com a palavra-passe 9875t6#6rfid7vble7r. Quando o certificado é armazenado no ficheiro de backup, a chave privada será encriptada com a palavra-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. Exportar um certificado e a sua chave privada para um ficheiro PFX

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

Consulte também

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)