ALTER CERTIFICATE (Transact-SQL)
Altera a chave privada usada para criptografar um certificado ou adiciona uma se não houver nenhuma chave. Altera a disponibilidade de um certificado para Service Broker.
Sintaxe
ALTER CERTIFICATE certificate_name
REMOVE PRIVATE KEY
|
WITH PRIVATE KEY ( <private_key_spec> [ ,... ] )
|
WITH ACTIVE FOR BEGIN_DIALOG = [ ON | OFF ]
<private_key_spec> ::=
FILE = 'path_to_private_key'
|
DECRYPTION BY PASSWORD = 'key_password'
|
ENCRYPTION BY PASSWORD = 'password'
Argumentos
certificate_name
É o nome exclusivo pelo qual o certificado é conhecido no banco de dados.FILE ='path_to_private_key'
Especifica o caminho completo, incluindo o nome de arquivo, até a chave privada. Esse parâmetro pode ser um caminho local ou um caminho de UNC a um local de rede. Esse arquivo será acessado dentro do contexto de segurança da conta de serviço do SQL Server. Ao usar essa opção, verifique se a conta de serviço tem acesso ao arquivo especificado.DECRYPTION BY PASSWORD ='key_password'
Especifica a senha que é obrigatória para descriptografar a chave privada.ENCRYPTION BY PASSWORD ='password'
Especifica a senha usada para criptografar a chave privada do certificado no banco de dados. A password deve atender aos requisitos da diretiva de senha do Windows do computador que está executando a instância do SQL Server. Para obter mais informações, consulte Diretiva de senha.REMOVE PRIVATE KEY
Especifica que a chave privada não deve mais ser mantida dentro do banco de dados.ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Disponibiliza o certificado para o iniciador de uma conversação de caixa de diálogo do Service Broker.
Comentários
A chave privada deve corresponder à chave pública especificada por certificate_name.
A cláusula DECRYPTION BY PASSWORD pode ser omitida se a senha no arquivo estiver protegida com uma senha nula.
Quando a chave privada de um certificado que já existe no banco de dados for importada a partir de um arquivo, a chave privada será protegida automaticamente pela chave mestra do banco de dados. Para proteger a chave privada com uma senha, use a frase ENCRYPTION BY PASSWORD.
A opção REMOVE PRIVATE KEY exclui a chave privada do certificado do banco de dados. Você pode fazer isso quando o certificado for usado para confirmar assinaturas ou em cenários do Service Broker que não requerem uma chave privada. Não remova a chave privada de um certificado que protege uma chave simétrica.
Não é necessário especificar uma senha de descriptografia quando a chave privada for criptografada com a chave mestra do banco de dados.
Importante |
---|
Sempre faça uma cópia de arquivamento de uma chave privada antes de removê-la de um banco de dados. Para obter mais informações, consulte BACKUP CERTIFICATE (Transact-SQL). |
Permissões
Requer a permissão ALTER no certificado.
Exemplos
A. Alterando a senha de um certificado
ALTER CERTIFICATE Shipping04
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',
ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');
GO
B. Alterando a senha usada para criptografar a chave privada
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',
DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');
GO
C. Importando uma chave privada para um certificado que já está existe no banco de dados
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D. Alterando a proteção da chave privada de uma senha para a chave mestra de banco de dados
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO