VERIFYSIGNEDBYASYMKEY (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

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

Convenções de sintaxe de Transact-SQL

Sintaxe

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

Asym_Key_ID
É a ID de um certificado de chave assimétrica no banco de dados.

clear_text
São dados de texto não criptografado que estão sendo verificados.

assinatura
É a assinatura que foi anexada aos dados assinados. assinatura é varbinary.

Tipos de retorno

int

Retorna 1 quando as assinaturas forem correspondentes; caso contrário, retorna 0.

Comentários

VerifySignedByAsymKey descriptografa a assinatura dos dados usando a chave pública da chave assimétrica especificada e compara o valor descriptografado a um hash de MD5 dos dados computados recentemente. Se os valores corresponderem, a assinatura será confirmada como válida.

Permissões

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

Exemplos

a. Testando se os dados têm uma assinatura válida

O exemplo a seguir retornará 1 se os dados selecionados não foram alterados desde a assinatura com a chave assimétrica WillisKey74. O exemplo retornará 0 se os dados foram violados.

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. Retornando um conjunto de resultados contendo dados com uma assinatura válida

O exemplo a seguir retorna linhas em SignedData04 contendo dados que não foram alterados desde a assinatura com a chave assimétrica WillisKey74. O exemplo chama a função AsymKey_ID para obter a ID de chave assimétrica do banco 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  

Consulte Também

ASYMKEY_ID (Transact-SQL)
SIGNBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Hierarquia de criptografia