DECRYPTBYCERT (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Эта функция расшифровывает зашифрованные данные с помощью закрытого ключа сертификата.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ] )
Аргументы
certificate_ID
Идентификатор сертификата в базе данных. certificate_ID имеет тип данных int.
ciphertext
Строка данных, зашифрованная с помощью открытого ключа сертификата.
@ciphertext
Переменная типа varbinary, содержащая данные, зашифрованные с помощью сертификата.
cert_password
Пароль, используемый для шифрования закрытого ключа сертификата. Аргумент cert_password должен иметь формат данных Юникода.
@cert_password
Переменная типа nchar или nvarchar, содержащая пароль, используемый для шифрования закрытого ключа сертификата. Аргумент @cert_password должен иметь формат данных Юникода.
Типы возвращаемых данных
Переменная типа varbinary с максимальным размером 8000 байт.
Замечания
Эта функция расшифровывает данные при помощи закрытого ключа сертификата. Криптографические преобразования с использованием асимметричных ключей требуют значительных ресурсов. Поэтому мы не рекомендуем разработчикам использовать функции ENCRYPTBYCERT и DECRYPTBYCERT для шифрования и расшифровки обычных данных пользователей.
Разрешения
DECRYPTBYCERT
требует разрешения CONTROL для сертификата.
Примеры
В этом примере выбираются строки из [AdventureWorks2022].[ProtectedData04]
, помеченного как данные, изначально зашифрованные с помощью сертификата JanainaCert02
. Сначала выполняется расшифровка закрытого ключа сертификата JanainaCert02
с помощью пароля сертификата pGFD4bb925DGvbd2439587y
. Затем с помощью этого закрытого ключа расшифровывается зашифрованный текст. Расшифрованные данные преобразуются из типа varbinary в тип nvarchar.
SELECT CONVERT(NVARCHAR(max), DecryptByCert(Cert_Id('JanainaCert02'),
ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks2022].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO
См. также
ENCRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
СЕРТИФИКАТ BACKUP (Transact-SQL)
Иерархия средств шифрования