DecryptByCert (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)