Поделиться через


VerifySignedByAsmKey (Transact-SQL)

Проверяет, изменялись ли данные с цифровой подписью с момента подписи.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )

Аргументы

  • Asym_Key_ID
    Идентификатор сертификата с ассиметричным ключом в базе данных.
  • clear_text
    Незашифрованные текстовые данные, проверку которых нужно произвести. varbinary.
  • signature
    Подпись, которая была прикреплена к подписанным данным.

Типы возвращаемых данных

int

Возвращает 1 в случае совпадения подписей и 0 в противном случае.

Замечания

Инструкция VerifySignedByAsmKey формирует подпись на основе ранее подписанных данных, используя асимметричный ключ, хранящийся в базе данных. Инструкция VerifySignedByAsmKey сравнивает новую производную подпись с подписью, связанной с подписанными данными при их получении. Если вновь полученная подпись совпадает с той, что была прикреплена к данным, то это доказывает, что данные с момента подписи не изменялись.

Разрешения

Требуется разрешение VIEW DEFINITION на асимметричный ключ.

Примеры

А. Проверка данных с правильной подписью

Следующий пример возвращает 1, если выбранные данные не изменялись с момента их подписи ассиметричным ключом WillisKey74. Пример возвращает 0, если данные были испорчены.

SELECT Data,
     VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), SignedData,
     DataSignature ) as IsSignatureValid
FROM [AdventureWorks].[SignedData04] 
WHERE Description = N'data encrypted by asymmetric key ''WillisKey74'''
GO
RETURN

Б. Получение результирующего набора, содержащего данные с правильной подписью

В следующем примере возвращаются строки из SignedData04, содержащие данные, которые не изменялись с момента их подписи асимметричным ключом WillisKey74. Пример вызывает функцию AsymKey_ID для получения идентификатора асимметричного ключа из базы данных.

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

См. также

Справочник

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

Другие ресурсы

Иерархия средств шифрования

Справка и поддержка

Получение помощи по SQL Server 2005