次の方法で共有


DecryptByCert (Transact-SQL)

証明書の秘密キーを使ってデータの暗号化を解除します。

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

構文

DecryptByCert ( 
                            certificate_ID , 
              { 'ciphertext' | @ciphertext } 
              [ , { 'cert_password' | @cert_password } ]
                            )

引数

  • certificate_ID
    データベース内の証明書の ID を指定します。 int.
  • ciphertext
    証明書の公開キーで暗号化されているデータの文字列を指定します。
  • @ciphertext
    証明書で暗号化されたデータを含む varbinary 型の変数を指定します。
  • cert_password
    証明書の秘密キーの暗号化に使用されたパスワードを指定します。Unicode であることが必要です。
  • @cert_password
    証明書の秘密キーの暗号化に使用されたパスワードを含む、nchar 型または nvarchar 型の変数を指定します。Unicode であることが必要です。

戻り値の型

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

解説

この関数では、証明書の秘密キーを使ってデータの暗号化を解除します。非対称キーを使用する暗号化変換では、リソースが大幅に消費されます。このため、ユーザー データを日常的に暗号化する場合、EncryptByCert および DecryptByCert は適切ではありません。

次の例では、data encrypted by certificate JanainaCert02 とマークされた [AdventureWorks].[ProtectedData04] から行を選択し、証明書 JanainaCert02 の秘密キーを使って暗号化を解除します。最初に証明書のパスワード pGFD4bb925DGvbd2439587y を使って証明書の暗号化を解除する必要があります。その後、暗号化を解除したデータを、varbinary 型から nvarchar 型に変換します。

SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
    ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks].[ProtectedData04] 
WHERE Description 
    = N'data encrypted by certificate '' JanainaCert02''';
GO

参照

関連項目

EncryptByCert (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)

その他の技術情報

暗号化階層

ヘルプおよび情報

SQL Server 2005 の参考資料の入手