VERIFYSIGNEDBYASYMKEY (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Testet, ob digital signierte Daten seit der Signierung geändert wurden.
Transact-SQL-Syntaxkonventionen
Syntax
VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )
Argumente
Asym_Key_ID
Die ID eines asymmetrischen Schlüsselzertifikats in der Datenbank.
clear_text
Die überprüften Klartextdaten.
Signatur
Die Signatur, die an die signierten Daten angefügt wurde. signature ist vom Datentyp varbinary.
Rückgabetypen
int
Gibt 1 zurück, wenn die Signaturen übereinstimmen, andernfalls 0.
Hinweise
VerifySignedByAsymKey entschlüsselt die Signatur der Daten mit dem öffentlichen Schlüssel des angegebenen asymmetrischen Schlüssels und vergleicht den entschlüsselten Wert mit einem neu berechneten MD5-Hash der Daten. Wenn die Werte zusammenpassen, wird die Signatur als gültig bestätigt.
Berechtigungen
Erfordert die VIEW DEFINITION-Berechtigung für den asymmetrischen Schlüssel.
Beispiele
A. Testen von Daten mit einer gültigen Signatur
Im folgenden Beispiel wird 1 zurückgegeben, wenn die ausgewählten Daten nach der Signierung mit dem asymmetrischen Schlüssel WillisKey74
nicht geändert wurden. Im Beispiel wird 0 zurückgegeben, wenn die Daten manipuliert wurden.
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. Zurückgeben eines Resultsets, das Daten mit einer gültigen Signatur enthält
Im folgenden Beispiel werden Zeilen in SignedData04
mit Daten zurückgegeben, die nach der Signierung mit dem asymmetrischen Schlüssel WillisKey74
nicht geändert wurden. Es wird die AsymKey_ID
-Funktion aufgerufen, um die ID des asymmetrischen Schlüssels aus der Datenbank abzurufen.
SELECT Data
FROM [AdventureWorks2022].[SignedData04]
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,
DataSignature ) = 1
AND Description = N'data encrypted by asymmetric key ''WillisKey74''';
GO
Siehe auch
ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Verschlüsselungshierarchie