ENCRYPTBYCERT (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 [AdventureWorks].[ProtectedData04]
values( N'data encrypted by certificate ''Shipping04''',
EncryptByCert(Cert_ID('JanainaCert02'), @cleartext) );
GO