DECRYPTBYCERT (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
この関数は証明書の秘密キーを使用し、暗号化データを復号します。
構文
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)
暗号化階層