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


ENCRYPTBYCERT (Transact-SQL)

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

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

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

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

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

  • nvarchar
  • char
  • varchar
  • binary
  • varbinary
  • nchar

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

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

Замечания

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

Примеры

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

INSERT INTO [AdventureWorks2022].[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 (Transact-SQL)
Иерархия средств шифрования