ENCRYPTBYCERT (Transact-SQL)ENCRYPTBYCERT (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database

証明書の公開キーを使ってデータを暗号化します。Encrypts data with the public key of a certificate.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

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

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

certificate_IDcertificate_ID
データベース内の証明書の ID。The ID of a certificate in the database. int.int.

cleartextcleartext
証明書で暗号化されるデータの文字列。A string of data that will be encrypted with the certificate.

@cleartext@cleartext
証明書の公開キーで暗号化されるデータが含まれる次のいずれかの型の変数:A variable of one of the following types that contains data that will be encrypted with the public key of the certificate:

  • nvarcharnvarchar
  • charchar
  • varcharvarchar
  • [バイナリ]binary
  • varbinaryvarbinary
  • ncharnchar

戻り値の型Return Types

varbinary 8,000 バイトの最大サイズ。varbinary with a maximum size of 8,000 bytes.

解説Remarks

この関数によって証明書の公開キーでデータが暗号化されます。This function encrypts data with the certificate's public key. この暗号文は、対応する秘密キーでのみ暗号化を解除できます。The ciphertext can only be decrypted with the corresponding private key. 対称キーを使用した暗号化と暗号化の解除に比べ、このような非対称変換はコストが高くなります。These asymmetric transformations are costly when compared to encryption and decryption using a symmetric key. そのため、大きなデータセットを扱う場合、非同期暗号化は推奨されません。As such, asymmetric encryption isn't recommended when working with large datasets.

Examples

次の例では、@cleartext という証明書を使用して、JanainaCert02 に格納されているプレーン テキストを暗号化します。This example encrypts the plaintext stored in @cleartext with the certificate called JanainaCert02. 暗号化されたデータは、テーブル ProtectedData04 に挿入されます。The encrypted data is inserted into table ProtectedData04.

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

参照See Also

DECRYPTBYCERT (Transact-SQL) DECRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL) CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL) ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL) DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL) BACKUP CERTIFICATE (Transact-SQL)
暗号化階層Encryption Hierarchy