適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric の 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 権限が必要です。
例
この例では、証明書 [AdventureWorks2022].[ProtectedData04] によって最初に暗号化されたデータとしてマークされている、JanainaCert02 からの行が選択されます。 最初に、証明書 JanainaCert02 のパスワードで証明書 pGFD4bb925DGvbd2439587y の秘密キーが復号されます。 次に、この秘密キーで暗号化テキストが復号されます。 暗号化データが 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)
証明書を作成する (Transact-SQL)
ALTER証明書(Transact-SQL)
ドロップ証明書(Transact-SQL)
バックアップ証明書 (Transact-SQL)
暗号化階層