VerifySignedByAsmKey (Transact-SQL)

Testet, ob digital signierte Daten seit der Signierung geändert wurden.

Themenlink (Symbol)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.
  • signature
    Die Signatur, die an die signierten Daten angefügt wurde. varbinary.

Rückgabetypen

int

Gibt 1 zurück, wenn die Signaturen übereinstimmen, andernfalls 0.

Hinweise

VerifySignedByAsmKey leitet eine Signatur aus zuvor signierten Daten ab, wobei ein in der Datenbank gespeicherter asymmetrischer Schlüssel verwendet wird. VerifySignedByAsmKey vergleicht die neu abgeleitete Signatur mit der Signatur, die den signierten Daten beim Empfang zugeordnet wurde. Falls die neu abgeleitete Signatur mit der Signatur übereinstimmt, die an die signierten Daten angefügt wurde, wird dadurch bewiesen, dass die Daten nach der Signierung nicht geändert wurden.

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 [AdventureWorks].[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 [AdventureWorks].[SignedData04] 
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,
     DataSignature ) = 1
AND Description = N'data encrypted by asymmetric key ''WillisKey74'''
GO

Siehe auch

Verweis

AsymKey_ID (Transact-SQL)
SignByAsymKey (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)

Andere Ressourcen

Verschlüsselungshierarchie

Hilfe und Informationen

Informationsquellen für SQL Server 2005