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ópico Convenções da 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 política de senha do Windows do computador que está executando a instância do SQL Server. Para obter mais informações, consulte Política 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 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).

A opção WITH PRIVATE KEY não está disponível em um banco de dados independente.

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

Consulte também

Referência

CREATE CERTIFICATE (Transact-SQL)

DROP CERTIFICATE (Transact-SQL)

BACKUP CERTIFICATE (Transact-SQL)

EVENTDATA (Transact-SQL)

Conceitos

Hierarquia de criptografia