VerifySignedByAsmKey (Transact-SQL)
Comprueba si se han cambiado los datos firmados digitalmente desde que se firmaron.
Convenciones de sintaxis de Transact-SQL
Sintaxis
VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )
Argumentos
- Asym_Key_ID
Es el Id. de un certificado de clave asimétrica en la base de datos.
- clear_text
Son datos de texto no cifrado que se van a comprobar.
- signature
Es la firma adjunta a los datos firmados. varbinary.
Tipos de valor devueltos
int
Devuelve 1 si las firmas coinciden; de lo contrario devuelve 0.
Notas
VerifySignedByAsmKey obtiene una firma de los datos firmados anteriormente utilizando una clave asimétrica almacenada en la base de datos. VerifySignedByAsmKey compara la firma recién obtenida con la firma asociada a los datos firmados cuando se recibieron. Si la firma recién obtenida es la misma que la firma adjunta a los datos firmados, esto prueba que los datos no se cambiaron desde que se firmaron.
Permisos
Requiere el permiso VIEW DEFINITION en la clave asimétrica.
Ejemplos
A. Comprobar datos con una firma válida
En el siguiente ejemplo se devuelve 1 si los datos seleccionados no se han cambiado desde que se firmaron con la clave asimétrica WillisKey74
. El ejemplo devuelve 0 si los datos no se han modificado.
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. Devolver un conjunto de resultados que contiene datos con una firma válida
En el siguiente ejemplo se devuelven las filas de SignedData04
que contienen datos que no se han cambiado desde que se firmaron con la clave asimétrica WillisKey74
. El ejemplo llama a la función AsymKey_ID
para obtener el Id. de la clave asimétrica de la base de datos.
SELECT Data
FROM [AdventureWorks].[SignedData04]
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,
DataSignature ) = 1
AND Description = N'data encrypted by asymmetric key ''WillisKey74'''
GO
Vea también
Referencia
AsymKey_ID (Transact-SQL)
SignByAsymKey (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)