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


DECRYPTBYASYMKEY (Transact-SQL)

Дешифрует данные асимметричным ключом.

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

Синтаксис

DecryptByAsymKey (Asym_Key_ID , { 'ciphertext' | @ciphertext } 
    [ , 'Asym_Key_Password' ] )

Аргументы

  • Asym_Key_ID
    Идентификатор асимметричного ключа в базе данных. Аргумент Asym_Key_ID имеет тип int.

  • ciphertext
    Строка данных, которая была зашифрована асимметричным ключом.

  • @ciphertext
    Переменная типа varbinary , содержащая данные, которые были зашифрованы с помощью ассиметричного ключа.

  • Asym_Key_Password
    Пароль, который был использован при шифровке асимметричного ключа в базе данных.

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

varbinary с максимальным размером 8000 байт.

Замечания

Шифрование и дешифрование асимметричным ключом являются очень дорогостоящими по сравнению с шифрованием и дешифрованием симметричным ключом. Рекомендуется использовать асимметричный ключ при работе с большими наборами данных, например с данными пользователей в таблицах.

Разрешения

Требует разрешения CONTROL для асимметричного ключа.

Примеры

Следующий пример расшифровывает текст, зашифрованный асимметричным ключом JanainaAsymKey02, хранящимся в таблице AdventureWorks.ProtectedData04. Возвращаемые данные зашифрованы асимметричным ключом JanainaAsymKey02, который был дешифрован паролем pGFD4bb925DGvbd2439587y. Открытый текст приводится к типу nvarchar.

SELECT CONVERT(nvarchar(max),
    DecryptByAsymKey( AsymKey_Id('JanainaAsymKey02'), 
    ProtectedData, N'pGFD4bb925DGvbd2439587y' )) 
AS DecryptedData 
FROM [AdventureWorks].[Sales].[ProtectedData04] 
WHERE Description = N'encrypted by asym key''JanainaAsymKey02''';
GO