DECRYPTBYASYMKEY (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
此函式會使用非對稱金鑰為加密資料解密。
語法
DecryptByAsymKey (Asym_Key_ID , { 'ciphertext' | @ciphertext }
[ , 'Asym_Key_Password' ] )
引數
Asym_Key_ID
資料庫中的非對稱金鑰識別碼。 Asym_Key_ID 具有 int 資料類型。
ciphertext
以非對稱金鑰加密的資料字串。
@ciphertext
varbinary 類型的變數,其中包含以非對稱金鑰加密的資料。
Asym_Key_Password
用來加密資料庫中非對稱金鑰的密碼。
傳回型別
varbinary,大小上限為 8,000 個位元組。
備註
相較於對稱式加密/解密,非對稱金鑰加密/解密具有較高的成本。 使用大型資料集時 (例如儲存在資料表中的使用者資料),建議開發人員避免非對稱金鑰加密/解密。
權限
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)
選擇加密演算法
加密階層