DECRYPTBYASYMKEY (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
この関数は非対称キーを使用して暗号化データを復号します。
構文
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)
暗号化アルゴリズムの選択
暗号化階層