DECRYPTBYASYMKEY (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