Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzurePDW (Analytics Platform System)
Banco 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, caso nenhuma esteja presente. Altera a disponibilidade de um certificado para Agente de Serviço.
Convenções de sintaxe de Transact-SQL
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 será mais mantida dentro do banco de dados.
WITH PRIVATE KEY especifica que a chave privada do certificado está carregada no SQL Server.
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. O arquivo é acessado no 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 você especificar apenas um nome de arquivo, o arquivo será salvo na pasta de dados do usuário padrão da instância. Essa pasta pode ou não ser a pasta SQL Server DATA. Para o SQL Server Express LocalDB, a pasta de dados de usuário padrão para a instância é o caminho especificado pela variável de ambiente %USERPROFILE% 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. Estes bits podem estar no formato criptografado. Se criptografado, você deve fornecer uma senha de descriptografia. O SQL Server não executa verificações de política de senha nessa senha. Os bits de chave privada devem estar em um formato de arquivo PVK.
DESCRIPTOGRAFIA POR SENHA ='current_password'
Especifica a senha que é obrigatória para descriptografar a chave privada.
CRIPTOGRAFIA POR SENHA ='new_password'
Especifica a senha usada para criptografar a chave privada do certificado no banco de dados. A new_password deve atender aos requisitos da política de senha do Windows do computador que executa a instância do SQL Server. Para obter mais informações, consulte Password Policy.
ATIVO HÁ BEGIN_DIALOG = { ON | DESLIGADO }
Disponibiliza o certificado para o iniciador de uma conversa de caixa de diálogo do Agente de Serviço.
Remarks
A chave privada deve corresponder à chave pública especificada por certificate_name.
Você pode omitir a cláusula DECRYPTION BY PASSWORD se a senha no arquivo estiver protegida com uma senha nula.
Quando você importa a chave privada de um certificado que já existe no banco de dados, a chave privada é protegida automaticamente 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 REMOVE PRIVATE KEY exclui a chave privada do certificado do banco de dados. Você pode remover a chave privada ao usar o certificado para verificar assinaturas ou em cenários do Service Broker que não exigem uma chave privada. Não remova a chave privada de um certificado que proteja uma chave simétrica. Você precisa restaurar a chave privada para assinar quaisquer módulos ou cadeias de caracteres adicionais que devem ser verificadas com o certificado ou para descriptografar um valor criptografado com o certificado.
Você não precisa 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 arquivamento de uma chave privada antes de removê-la de um banco de dados. Para obter mais informações, confira BACKUP CERTIFICATE (Transact-SQL) e CERTPRIVATEKEY (Transact-SQL).
A opção WITH PRIVATE KEY não está disponível em um banco de dados independente.
Limitações
Os nomes de certificado não podem ser alterados após a criação. ALTER CERTIFICATE não dá suporte à renomeação de certificados. Se você precisar usar um nome de certificado diferente, deverá criar um novo certificado e migrar dependências.
Solução alternativa para certificados TDE
Se você precisar substituir um certificado TDE (Transparent Data Encryption) por um nome diferente:
Faça backup do certificado atual e da chave privada:
BACKUP CERTIFICATE OldTDECert TO FILE = 'C:\Backup\OldTDECert.cer' WITH PRIVATE KEY ( FILE = 'C:\Backup\OldTDECert.pvk', ENCRYPTION BY PASSWORD = '<password>' );Crie o novo certificado com o nome correto:
CREATE CERTIFICATE NewTDECert WITH SUBJECT = 'TDE Certificate - Correct Name';Para cada banco de dados criptografado por TDE, altere a chave de criptografia:
USE EncryptedDB; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER CERTIFICATE NewTDECert;Depois que todos os bancos de dados forem migrados, remova o certificado antigo:
USE master; GO DROP CERTIFICATE OldTDECert;
Important
Sempre faça backup de certificados e chaves privadas antes de fazer alterações no TDE. Armazene backups em um local seguro separado do servidor de banco de dados.
Permissions
Requer a permissão ALTER no certificado.
Examples
A. Removendo a chave privada de um certificado
ALTER CERTIFICATE Shipping04
REMOVE PRIVATE KEY;
GO
B. Alterando a senha usada para criptografar 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á 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