Partilhar via


VERIFICAR ASSINADOBYSYMKEY (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Testa se os dados assinados digitalmente foram alterados desde que foram assinados.

Transact-SQL convenções de sintaxe

Sintaxe

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )  

Arguments

Asym_Key_ID
É o ID de um certificado de chave assimétrica na base de dados.

clear_text
São dados de texto claro que estão a ser verificados.

assinatura
É a assinatura que foi associada aos dados assinados. A assinatura é Varbinary.

Tipos de devolução

int

Devolve 1 quando as assinaturas coincidem; caso contrário, 0.

Observações

VerifySignedByAsymKey desencripta a assinatura dos dados usando a chave pública da chave assimétrica especificada e compara o valor desencriptado com um hash MD5 recém-calculado dos dados. Se os valores coincidirem, a assinatura é confirmada como válida.

Permissions

Requer permissão VIEW DEFINITION na chave assimétrica.

Examples

A. Testar dados com assinatura válida

O exemplo seguinte retorna 1 se os dados selecionados não foram alterados desde que foram assinados com chave WillisKey74assimétrica . O exemplo devolve 0 se os dados tiverem sido adulterados.

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 um conjunto de resultados que contenha dados com uma assinatura válida

O exemplo seguinte devolve linhas em SignedData04 que contêm dados que não foram alterados desde que foram assinados com chave WillisKey74assimétrica . O exemplo chama a função AsymKey_ID para obter o ID da chave assimétrica da base de dados.

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

Ver também

ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CRIAR CHAVE ASSIMÉTRICA (Transact-SQL)
ALTERAR A TONALIDADE ASSIMÉTRICA (Transact-SQL)
CHAVE ASSIMÉTRICA DE DROP (Transact-SQL)
Hierarquia de criptografia