DECRYPTBYASYMKEY (Transact-SQL)

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

この関数は非対称キーを使用して暗号化データを復号します。

Transact-SQL 構文表記規則

構文

DecryptByAsymKey (Asym_Key_ID , { 'ciphertext' | @ciphertext }   
    [ , 'Asym_Key_Password' ] )  

引数

Asym_Key_ID
データベース内の非対称キーの ID。 Asym_Key_ID には、int データ型が与えられます。

ciphertext
非対称キーで暗号化するデータの文字列。

@ciphertext
非対称キーで暗号化されたデータを含む、型 varbinary の変数。

Asym_Key_Password
データベース内の非対称キーの暗号化に使用されたパスワード。

戻り値の型

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

解説

対称暗号化/復号と比べると、非対称キーの暗号化/復号はコストが高くなります。 テーブルに保存されているユーザー データなど、大量のデータセットを扱うとき、非対称キーの暗号化/復号は回避するように開発者には提案しています。

アクセス許可

DECRYPTBYASYMKEY には、非対称キーに対する CONTROL 権限が必要です。

この例では、非対称キー JanainaAsymKey02 で最初に暗号化された暗号化テキストが復号されます。 AdventureWorks2022.ProtectedData04 によって、この非対称キーが格納されました。 返されたデータが非対称キー JanainaAsymKey02 で復号されました。 パスワード pGFD4bb925DGvbd2439587y を使用し、この非対称キーが復号されました。 返されたプレーンテキストが型 nvarchar に変換されました。

SELECT CONVERT(NVARCHAR(max),  
    DecryptByAsymKey( AsymKey_Id('JanainaAsymKey02'),   
    ProtectedData, N'pGFD4bb925DGvbd2439587y' ))   
AS DecryptedData   
FROM [AdventureWorks2022].[Sales].[ProtectedData04]   
WHERE Description = N'encrypted by asym key''JanainaAsymKey02''';  
GO  

参照

ENCRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
暗号化アルゴリズムの選択
暗号化階層