DECRYPTBYASYMKEY (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
此函数使用非对称密钥解密已加密数据。
语法
DecryptByAsymKey (Asym_Key_ID , { 'ciphertext' | @ciphertext }
[ , 'Asym_Key_Password' ] )
参数
Asym_Key_ID
数据库中非对称密钥的 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)
选择加密算法
加密层次结构