ALTER SYMMETRIC KEY (Transact-SQL)

Altera as propriedades de uma chave simétrica.

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

Sintaxe

ALTER SYMMETRIC KEY Key_name <alter_option>

<alter_option> ::=
   ADD ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
   | 
   DROP ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<encrypting_mechanism> ::=
   CERTIFICATE certificate_name
   |
   PASSWORD = 'password'
   |
   SYMMETRIC KEY Symmetric_Key_Name
   |
   ASYMMETRIC KEY Asym_Key_Name

Argumentos

  • Key_name
    É o nome pelo qual a chave simétrica a ser alterada é conhecida no banco de dados.

  • ADD ENCRYPTION BY
    Adiciona a criptografia usando o método especificado.

  • DROP ENCRYPTION BY
    Descarta a criptografia pelo método especificado. Você não pode remover todas as criptografias de uma chave simétrica.

  • CERTIFICATE Certificate_name
    Especifica o certificado que é usado para criptografar a chave simétrica. Esse certificado já deve existir no banco de dados.

  • PASSWORD ='password'
    Especifica a senha usada para criptografar a chave simétrica. A password deve atender aos requisitos da diretiva de senha do Windows do computador que está executando a instância do SQL Server.

  • SYMMETRIC KEY Symmetric_Key_Name
    Especifica a chave simétrica usada para criptografar a chave simétrica que está sendo alterada. Essa chave simétrica já deve existir no banco de dados e deve estar aberta.

  • ASYMMETRIC KEY Asym_Key_Name
    Especifica a chave assimétrica que é usada para criptografar a chave simétrica que está sendo alterada. Essa chave assimétrica já deve existir no banco de dados.

Comentários

Observação sobre cuidadosCuidado

Quando uma chave simétrica é criptografada com uma senha, e não com a chave pública da chave mestre do banco de dados, o algoritmo de criptografia TRIPLE_DES é usado. Por esse motivo, as chaves criadas com um algoritmo de criptografia forte, como AES, são protegidas por um algoritmo mais fraco.

Para alterar a criptografia da chave simétrica, use as frases ADD ENCRYPTION e DROP ENCRYPTION. Nunca é possível uma chave estar totalmente sem criptografia. Devido a isso, o melhor a fazer é adicionar uma nova forma de criptografia antes de remover a forma antiga.

Para alterar a titularidade de uma chave simétrica, use ALTER AUTHORIZATION.

Permissões

Requer a permissão ALTER na chave simétrica. Se a criptografia for adicionada por um certificado ou chave assimétrica, requer a permissão VIEW DEFINITION no certificado ou na chave assimétrica. Se a criptografia for descartada por um certificado ou chave assimétrica, requer a permissão CONTROL no certificado ou na chave assimétrica.

Exemplos

O exemplo a seguir altera o método de criptografia que é usado para proteger uma chave simétrica. A chave simétrica JanainaKey043 foi criptografada pelo certificado Shipping04 quando a chave foi criada. Como a chave nunca pode ser armazenada sem estar criptografada, neste exemplo, a criptografia é adicionada por senha e, em seguida, removida por certificado.

CREATE SYMMETRIC KEY JanainaKey043 WITH ALGORITHM = AES_256 
    ENCRYPTION BY CERTIFICATE Shipping04;
-- Open the key. 
OPEN SYMMETRIC KEY JanainaKey043 DECRYPTION BY CERTIFICATE Shipping04
    WITH PASSWORD = '<enterStrongPasswordHere>'; 
-- First, encrypt the key with a password.
ALTER SYMMETRIC KEY JanainaKey043 
    ADD ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
-- Now remove encryption by the certificate.
ALTER SYMMETRIC KEY JanainaKey043 
    DROP ENCRYPTION BY CERTIFICATE Shipping04;
CLOSE SYMMETRIC KEY JanainaKey043;