VERIFYSIGNEDBYASYMKEY (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
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 identificador de un certificado de clave asimétrica en la base de datos.
clear_text
Son los datos de texto no cifrado que se van a comprobar.
firma
Es la firma adjunta a los datos firmados. signature es varbinary.
Tipos de valor devuelto
int
Devuelve 1 cuando las firmas coinciden; de lo contrario devuelve 0.
Comentarios
VerifySignedByAsymKey descifra la firma de los datos utilizando la clave pública de la clave asimétrica especificada y compara el valor descifrado con un hash MD5 calculado recientemente de los datos. Si los valores coinciden, se confirma que la firma es válida.
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 [AdventureWorks2022].[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 identificador de la clave asimétrica de la base de datos.
SELECT Data
FROM [AdventureWorks2022].[SignedData04]
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,
DataSignature ) = 1
AND Description = N'data encrypted by asymmetric key ''WillisKey74''';
GO
Vea también
ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Jerarquía de cifrado