Compartilhar via


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.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

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.

Observação importanteImportante

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