ENCRYPTBYCERT (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

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

Синтаксис

EncryptByCert ( certificate_ID , { 'cleartext' | @cleartext } )

Аргументы

  • certificate_ID
    Идентификатор сертификата в базе данных. int.

  • cleartext
    Строка, содержимое которой будет зашифровано с помощью сертификата.

  • @cleartext
    Переменная типа nvarchar, char, varchar, binary, varbinary или nchar, данные которой будут зашифрованы с помощью открытого ключа сертификата.

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

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

Замечания

Эта функция шифрует данные при помощи открытого ключа сертификата. Код может быть расшифрован только с помощью соответствующего закрытого ключа. Ассиметричные преобразования гораздо более накладны, чем шифрование и дешифрование с использованием симметричного ключа. Поэтому использование ассиметричного шифрования не рекомендуется при работе с большими объемами данных, например таблицами пользовательских данных.

Примеры

В этом примере неформатированный текст из переменной @cleartext шифруется сертификатом с именем JanainaCert02. Зашифрованные данные помещаются в таблицу ProtectedData04.

INSERT INTO [AdventureWorks2012].[ProtectedData04] 
    VALUES ( N'Data encrypted by certificate ''Shipping04''',
    EncryptByCert(Cert_ID('JanainaCert02'), @cleartext) );
GO

См. также

Справочник

DECRYPTBYCERT (Transact-SQL)

Инструкция CREATE CERTIFICATE (Transact-SQL)

ALTER CERTIFICATE (Transact-SQL)

DROP CERTIFICATE (Transact-SQL)

BACKUP CERTIFICATE (Transact-SQL)

Основные понятия

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