Eu tenho um certificado em um banco de dados no Microsoft SQL Server 2008 R2. Desejo obter uma cópia do certificado para gravá-lo em um dispositivo USB e colocá-lo em um cofre. Não quero ter que ir para a própria máquina do servidor sql, quero fazer tudo isso a partir do meu aplicativo cliente que escrevi.
Eu sei como fazer backup de um certificado usando BACKUP CERTIFICATE ( http://msdn.microsoft.com/en-us/library/ms178578.aspx ), mas isso só tem opções para salvar em um ARQUIVO.
Existe outra técnica (talvez usando sys.certificates) que eu possa usar?
Estamos planejando uma atualização para 2014, portanto, se houver uma funcionalidade específica para essa versão, posso usá-la, mas, idealmente, a solução deve funcionar com 2008R2.
Novidades no SQL Server 2012 e também em 2014 são duas novas funções de criptografia que retornarão um fluxo binário conforme você está descrevendo. CREATE CERTIFICATE também foi atualizado para receber entrada BINARY para chaves públicas e privadas.
CERTENCODED retornará a parte da chave pública do certificado no formato BINÁRIO. CERTPRIVATEKEY retornará a parte da chave privada do certificado no formato BINARY. isso é criptografado, portanto, a senha para descriptografá-lo também seria necessária.
O acima pode ser salvo em um formato binário e gravado em um disco ou armazenado em representação textual do formato binário e gravado em disco.
Caso precise criá-lo novamente, utilize as opções BINARY da função CREATE CERTIFICATE .
Edit: Não há nada no 2008R2 que possa fazer o mesmo que eu saiba por meio das funções do sistema.