次の方法で共有


DECRYPTBYCERT (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

この関数は証明書の秘密キーを使用し、暗号化データを復号します。

Transact-SQL 構文表記規則

構文

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

引数

certificate_ID
データベース内の証明書の ID。 certificate_ID には、int データ型が与えられます。

ciphertext
証明書の公開キーで暗号化されているデータの文字列。

@ciphertext
証明書で暗号化されたデータを含む、型 varbinary の変数。

cert_password
証明書の秘密キーの復号に使用されるパスワード。 cert_password のデータ形式は Unicode にする必要があります。

@cert_password
証明書の秘密キーの復号に使用されるパスワードを含む、型 nchar または nvarchar の変数。 @cert_password のデータ形式は Unicode にする必要があります。

戻り値の型

最大サイズが 8,000 バイトの varbinary

解説

この関数では、証明書の秘密キーを使ってデータの暗号化を解除します。 非対称キーを使用する暗号化変換では、リソースが大幅に消費されます。 そのため、日常的なユーザー データの暗号化/復号については、ENCRYPTBYCERT と DECRYPTBYCERT の使用を避けるように開発者に提案しています。

アクセス許可

DECRYPTBYCERT には、証明書に対する CONTROL 権限が必要です。

この例では、証明書 JanainaCert02 によって最初に暗号化されたデータとしてマークされている、[AdventureWorks2022].[ProtectedData04] からの行が選択されます。 最初に、証明書 pGFD4bb925DGvbd2439587y のパスワードで証明書 JanainaCert02 の秘密キーが復号されます。 次に、この秘密キーで暗号化テキストが復号されます。 暗号化データが varbinary から nvarchar に変換されます。

SELECT CONVERT(NVARCHAR(max), DecryptByCert(Cert_Id('JanainaCert02'),  
    ProtectedData, N'pGFD4bb925DGvbd2439587y'))  
FROM [AdventureWorks2022].[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)
暗号化階層