Partage via


ALTER SYMMETRIC KEY (Transact-SQL)

S’applique à : SQL Server base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics

Permet de modifier les propriétés d'une clé symétrique.

Conventions de la syntaxe Transact-SQL

Notes

Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Syntaxe

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  

Arguments

KEY_NAME
Nom sous lequel la clé symétrique à modifier est connue dans la base de données.

ADD ENCRYPTION BY
Permet d'ajouter un chiffrement en utilisant la méthode spécifiée.

DROP ENCRYPTION BY
Permet de supprimer le chiffrement utilisant la méthode spécifiée. Vous ne pouvez pas supprimer tous les chiffrements d'une clé symétrique.

CERTIFICATE Certificate_name
Spécifie le certificat utilisé pour chiffrer la clé symétrique. Ce certificat doit déjà exister dans la base de données.

PASSWORD ='password'
Spécifie le mot de passe utilisé pour chiffrer la clé symétrique. password doit satisfaire aux critères de la stratégie de mot de passe Windows de l’ordinateur qui exécute l’instance de SQL Server.

SYMMETRIC KEY Symmetric_Key_Name
Spécifie la clé symétrique utilisée pour chiffrer la clé symétrique en cours de modification. Cette clé symétrique doit déjà exister dans la base de données et doit être ouverte.

ASYMMETRIC KEY Asym_Key_Name
Spécifie la clé asymétrique utilisée pour chiffrer la clé symétrique en cours de modification. Cette clé asymétrique doit déjà exister dans la base de données.

Notes

Attention

Lorsqu'une clé symétrique est chiffrée à l'aide d'un mot de passe à la place de la clé publique de la clé principale de base de données, l'algorithme de chiffrement TRIPLE_DES est utilisé. Pour cette raison, les clés créées à l'aide d'un algorithme de chiffrement renforcé, tel qu'AES, sont elles-mêmes sécurisées par un algorithme plus faible.

Pour modifier le chiffrement de la clé symétrique, utilisez les expressions ADD ENCRYPTION et DROP ENCRYPTION. Il est impossible qu'une clé ne présente aucun chiffrement. Pour cette raison, la méthode recommandée consiste à ajouter le nouveau type de chiffrement avant de supprimer l'ancien.

Pour changer le propriétaire d’une clé symétrique, utilisez ALTER AUTHORIZATION.

Notes

L'algorithme RC4 est uniquement pris en charge pour des raisons de compatibilité descendante. Le nouveau matériel ne peut être chiffré à l'aide de RC4 ou de RC4_128 que lorsque la base de données se trouve dans le niveau de compatibilité 90 ou 100. (Non recommandé.) Utilisez à la place un algorithme plus récent, tel qu'un des algorithmes AES. Dans SQL Server 2012 (11.x), le matériel chiffré à l'aide de RC4 ou de RC4_128 peut être déchiffré dans n'importe quel niveau de compatibilité.

Autorisations

Requiert l'autorisation ALTER sur la clé symétrique. En cas d'ajout d'un chiffrement par certificat ou clé asymétrique, l'autorisation VIEW DEFINITION est requise sur le certificat ou la clé asymétrique. En cas de suppression d'un chiffrement par certificat ou clé asymétrique, l'autorisation CONTROL est requise sur le certificat ou la clé asymétrique.

Exemples

Dans l'exemple ci-dessous, la méthode de chiffrement utilisée pour protéger une clé symétrique est modifiée. La clé symétrique JanainaKey043 a été chiffrée à l'aide du certificat Shipping04 lors de sa création. Comme la clé ne peut jamais être stockée sous forme non chiffrée, dans cet exemple, le chiffrement est ajouté par mot de passe, puis le chiffrement est supprimé à l'aide d'un certificat.

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;  

Voir aussi

CREATE SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
Hiérarchie de chiffrement