ENCRYPTBYCERT (Transact-SQL)

証明書の公開キーを使ってデータを暗号化します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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

引数

  • certificate_ID
    データベースに含まれる証明書の ID を指定します。int。

  • cleartext
    証明書で暗号化するデータの文字列を指定します。

  • @cleartext
    証明書の公開キーで暗号化するデータが含まれる、nvarchar、char、varchar、binary、varbinary、または nchar データ型の変数を指定します。

戻り値の型

varbinary 型 (最大サイズは 8,000 バイト)

説明

この関数では、証明書の公開キーを使ってデータを暗号化します。この暗号文は、対応する秘密キーでのみ暗号化を解除できます。このような非対称変換は、対称キーを使用する暗号化および暗号化解除と比較して、非常にコストがかかります。したがって、非対称暗号化は、テーブル内のユーザー データなど、大きなデータセットを処理する場合は推奨されません。

次の例では、JanainaCert02 という証明書を使用して、@cleartext に格納されているプレーン テキストを暗号化します。暗号化されたデータは、テーブル ProtectedData04 に挿入されます。

INSERT INTO [AdventureWorks2008R2].[ProtectedData04] 
    values( N'data encrypted by certificate ''Shipping04''',
    EncryptByCert(Cert_ID('JanainaCert02'), @cleartext) );
GO