Partager via


VERIFYSIGNEDBYASYMKEY (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Teste si les données signées numériquement ont été modifiées depuis leur dernière signature.

Conventions de la syntaxe Transact-SQL

Syntaxe

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

Asym_Key_ID
ID d'un certificat de clé asymétrique de la base de données.

clear_text
Texte en clair en cours de vérification.

signature
Signature attachée aux données signées. signature est de type varbinary.

Types de retour

int

Retourne 1 lorsque les signatures correspondent, sinon 0.

Remarques

VerifySignedByAsymKey déchiffre la signature des données à l’aide de la clé publique de la clé asymétrique spécifiée, puis compare la valeur déchiffrée à un hachage MD5 des données récemment calculé. Si les valeurs correspondent, la validité de la signature est confirmée.

Autorisations

Nécessite l'autorisation VIEW DEFINITION sur la clé asymétrique.

Exemples

R. Test de données ayant une signature valide

Le code exemple suivant retourne 1 si les données sélectionnées n'ont pas été modifiées depuis leur dernière signature avec la clé asymétrique WillisKey74. Le code exemple retourne 0 si les données ont été modifiées.

SELECT Data,  
     VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), SignedData,  
     DataSignature ) as IsSignatureValid  
FROM [AdventureWorks2022].[SignedData04]   
WHERE Description = N'data encrypted by asymmetric key ''WillisKey74''';  
GO  
RETURN;  

B. Retour d'un jeu de résultats qui contient des données avec une signature valide

L'exemple suivant retourne les lignes dans SignedData04 qui contiennent des données qui n'ont pas été modifiées depuis leur dernière signature avec la clé asymétrique WillisKey74. L'exemple de code appelle la fonction AsymKey_ID pour obtenir l'ID de la clé asymétrique à partir de la base de données.

SELECT Data   
FROM [AdventureWorks2022].[SignedData04]   
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,  
     DataSignature ) = 1  
AND Description = N'data encrypted by asymmetric key ''WillisKey74''';  
GO  

Voir aussi

ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Hiérarchie de chiffrement