Partilhar via


CERTIFICADO ALTER (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Altera a senha usada para criptografar a chave privada de um certificado, remove a chave privada ou importa a chave privada se nenhuma estiver presente. Altera a disponibilidade de um certificado para o Service Broker.

Transact-SQL convenções de sintaxe

Syntax

-- Syntax for SQL Server and Azure SQL Database  
  
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' | BINARY = private_key_bits }  
         [ , DECRYPTION BY PASSWORD = 'current_password' ]  
         [ , ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  
    |  
      {  
         [ DECRYPTION BY PASSWORD = 'current_password' ]  
         [ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  
-- Syntax for Parallel Data Warehouse  
  
ALTER CERTIFICATE certificate_name   
{  
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY (   
        FILE = '<path_to_private_key>',  
        DECRYPTION BY PASSWORD = '<key password>' )
}  

Arguments

certificate_name
É o nome exclusivo pelo qual o certificado é conhecido no banco de dados.

REMOVER CHAVE PRIVADA
Especifica que a chave privada não deve mais ser mantida dentro do banco de dados.

WITH PRIVATE KEY Especifica que a chave privada do certificado é carregada no SQL Server.

FICHEIRO ='path_to_private_key'
Especifica o caminho completo, incluindo o nome do arquivo, para a chave privada. Esse parâmetro pode ser um caminho local ou um caminho UNC para 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.

Se apenas um nome de arquivo for especificado, o arquivo será salvo na pasta de dados do usuário padrão para a instância. Esta pasta pode (ou não) ser a pasta DATA do SQL Server. Para o SQL Server Express LocalDB, a pasta de dados do usuário padrão para a instância é o caminho especificado pela variável de %USERPROFILE% ambiente para a conta que criou a instância.

BINÁRIO ='private_key_bits'
Aplica-se a: SQL Server 2012 (11.x) e posterior.

Bits de chave privada especificados como constante binária. Esses bits podem ser criptografados. Se encriptado, o utilizador deve fornecer uma palavra-passe de desencriptação. As verificações da política de senha não são executadas nessa senha. Os bits de chave privada devem estar em um formato de arquivo PVK.

DESENCRIPTAÇÃO POR PALAVRA-PASSE ='current_password'
Especifica a senha necessária para descriptografar a chave privada.

ENCRIPTAÇÃO POR PALAVRA-PASSE ='new_password'
Especifica a senha usada para criptografar a chave privada do certificado no banco de dados. new_password deve atender aos requisitos de diretiva 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.

ATIVO PARA BEGIN_DIALOG = { ON | DESLIGADO }
Disponibiliza o certificado para o iniciador de uma conversa de diálogo do Service Broker.

Remarks

A chave privada deve corresponder à chave pública especificada por certificate_name.

A cláusula DECRYPTION BY PASSWORD pode ser omitida se a palavra-passe no ficheiro estiver protegida com uma palavra-passe nula.

Quando a chave privada de um certificado que já existe no banco de dados é importada, a chave privada será automaticamente protegida pela chave mestra do banco de dados. Para proteger a chave privada com uma senha, use a cláusula ENCRYPTION BY PASSWORD.

A opção REMOVER CHAVE PRIVADA excluirá a chave privada do certificado do banco de dados. Você pode remover a chave privada quando o certificado for usado para verificar assinaturas ou em cenários do Service Broker que não exijam uma chave privada. Não remova a chave privada de um certificado que protege uma chave simétrica. A chave privada precisará ser restaurada para assinar quaisquer módulos ou cadeias de caracteres adicionais que devam ser verificados com o certificado ou para descriptografar um valor que tenha sido criptografado com o certificado.

Não é necessário especificar uma senha de descriptografia quando a chave privada é criptografada usando a chave mestra do banco de dados.

Para alterar a senha usada para criptografar a chave privada, não especifique as cláusulas FILE ou BINARY.

Important

Sempre faça uma cópia de arquivo de uma chave privada antes de removê-la de um banco de dados. Para obter mais informações, consulte BACKUP CERTIFICATE (Transact-SQL) e CERTPRIVATEKEY (Transact-SQL).

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

Permissions

Requer permissão ALTER no certificado.

Examples

A. Removendo a chave privada de um certificado

ALTER CERTIFICATE Shipping04   
    REMOVE PRIVATE KEY;  
GO  

B. Alterar a palavra-passe utilizada para encriptar a chave privada

ALTER CERTIFICATE Shipping11   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%',  
    ENCRYPTION BY PASSWORD = '34958tosdgfkh##38');  
GO  

C. Importando uma chave privada para um certificado que já está presente 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 do banco de dados

ALTER CERTIFICATE Shipping15   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');  
GO  

Ver também

CRIAR CERTIFICADO (Transact-SQL)
CERTIFICADO DE DESISTÊNCIA (Transact-SQL)
CERTIFICADO DE CÓPIA DE SEGURANÇA (Transact-SQL)
Hierarquia de criptografia
EVENTDATA (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)