DECRYPTBYASYMKEY (Transact-SQL)

Область применения:yesSQL Server (все поддерживаемые версии) YesБаза данных SQL Azure YesУправляемый экземпляр SQL Azure

Эта функция расшифровывает зашифрованные данные с помощью асимметричного ключа.

Topic link iconСинтаксические обозначения в Transact-SQL

Синтаксис

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

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

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

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

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

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

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

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

Remarks

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

Разрешения

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

Примеры

В этом примере расшифровывается зашифрованный текст, изначально зашифрованный с помощью асимметричного ключа JanainaAsymKey02. Этот асимметричный ключ хранится в таблице AdventureWorks2012.ProtectedData04. В этом примере возвращаемые данные расшифровываются с помощью асимметричного ключа JanainaAsymKey02. Для расшифровки асимметричного ключа используется пароль pGFD4bb925DGvbd2439587y. Возвращаемый открытый текст приводится к типу nvarchar.

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

См. также

ENCRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Выбор алгоритма шифрования
Иерархия средств шифрования