OPEN SYMMETRIC KEY (Transact-SQL)

Déchiffre une clé symétrique et la met à disposition pour l'utiliser.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

OPEN SYMMETRIC KEY Key_name DECRYPTION BY <decryption_mechanism>

<decryption_mechanism> ::=
    CERTIFICATE certificate_name [ WITH PASSWORD = 'password' ]
    |
    ASYMMETRIC KEY asym_key_name [ WITH PASSWORD = 'password' ]
    |
    SYMMETRIC KEY decrypting_Key_name
    |
    PASSWORD = 'decryption_password'

Arguments

  • Key_name
    Nom de la clé symétrique à ouvrir.

  • CERTIFICATE certificate_name
    Nom du certificat dont la clé privée sera utilisée pour déchiffrer la clé symétrique.

  • ASYMMETRIC KEY asym_key_name
    Nom de la clé asymétrique dont la clé privée sera utilisée pour déchiffrer la clé symétrique.

  • WITH PASSWORD ='password'
    Mot de passe utilisé pour chiffrer la clé privée du certificat ou la clé asymétrique.

  • SYMMETRIC KEY decrypting_key_name
    Nom de la clé symétrique qui sera utilisée pour déchiffrer la clé symétrique en cours d'ouverture.

  • PASSWORD ='password'
    Mot de passe utilisé pour protéger la clé symétrique.

Notes

Les clés symétriques ouvertes sont liées à la session et non au contexte de sécurité. Une clé ouverte est disponible tant qu'elle n'a pas été explicitement fermée ou que la session n'a pas été arrêtée. Si vous ouvrez une clé symétrique puis vous changez de contexte, la clé reste ouverte et disponible dans le contexte de substitution. Les informations relatives aux clés symétriques ouvertes sont visibles dans l'affichage catalogue sys.openkeys (Transact-SQL).

Si la clé symétrique a été chiffrée avec une autre clé, celle-ci doit être ouverte d'abord.

Si la clé symétrique est déjà ouverte, la requête est NO_OP.

Si le mot de passe, le certificat ou la clé fournie pour déchiffrer la clé symétrique est incorrecte, la requête échoue.

Les clés symétriques créées à partir d'un fournisseur de chiffrement ne peuvent pas être ouvertes. Les opérations de chiffrement et déchiffrement utilisant ce type de clé symétrique s'exécutent sans l'instruction OPEN car le fournisseur de chiffrement ouvre et ferme la clé.

Autorisations

L'appelant doit disposer d'une autorisation sur la clé, et l'autorisation VIEW DEFINITION ne doit pas lui avoir été refusée sur la clé. D'autres conditions existent qui dépendent du mode de déchiffrement :

  • ENCRYPTION BY CERTIFICATE : autorisation CONTROL sur le certificat et connaissance du mot de passe qui chiffre la clé privée.

  • DECRYPTION BY ASYMMETRIC KEY : autorisation CONTROL sur la clé asymétrique et connaissance du mot de passe qui chiffre la clé privée.

  • DECRYPTION BY PASSWORD : connaissance de l'un des mots de passe utilisés pour chiffrer la clé symétrique.

Exemples

A. Ouverture d'une clé symétrique à l'aide d'un certificat

L'exemple suivant ouvre la clé symétrique SymKeyMarketing3 et la déchiffre à l'aide de la clé privée du certificat MarketingCert9.

USE AdventureWorks;
OPEN SYMMETRIC KEY SymKeyMarketing3 
    DECRYPTION BY CERTIFICATE MarketingCert9;
GO

B. Ouverture d'une clé symétrique à l'aide d'une autre clé symétrique

L'exemple suivant ouvre la clé symétrique MarketingKey11 et la déchiffre à l'aide de la clé symétrique HarnpadoungsatayaSE3.

USE AdventureWorks;
-- First open the symmetric key that you want for decryption.
OPEN SYMMETRIC KEY HarnpadoungsatayaSE3 
    DECRYPTION BY CERTIFICATE sariyaCert01;
-- Use the key that is already open to decrypt MarketingKey11.
OPEN SYMMETRIC KEY MarketingKey11 
    DECRYPTION BY SYMMETRIC KEY HarnpadoungsatayaSE3;
GO