DECRYPTBYCERT (Transact-SQL)
使用憑證的私密金鑰為資料解密。
語法
DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ] )
引數
certificate_ID
這是資料庫中憑證的識別碼。certificate_ID 是 int。ciphertext
這是已經利用憑證私密金鑰加密的資料字串。@ciphertext
這是 varbinary 類型的變數,其中包含已利用憑證加密的資料。cert_password
這是為憑證的私密金鑰加密所用的密碼。它必須是 Unicode。@cert_password
這是 nchar 或 nvarchar 類型的變數,其中包含用來加密憑證私密金鑰的密碼。它必須是 Unicode。
傳回類型
varbinary,大小上限為 8,000 位元組。
備註
這個函數是利用憑證的私密金鑰為資料解密。使用非對稱金鑰來轉換密碼編譯,會耗用大量資源。因此,EncryptByCert 和 DecryptByCert 不適用於使用者資料的常式加密。
權限
需要憑證的 CONTROL 權限。
範例
下列範例會從標示為 data encrypted by certificate JanainaCert02 的 [AdventureWorks2008R2].[ProtectedData04] 選取資料列。這個範例使用憑證 JanainaCert02 的私密金鑰將加密文字解密;一開始先以憑證的密碼 pGFD4bb925DGvbd2439587y 將憑證解密。解密的資料會從 varbinary 轉換為 nvarchar。
SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks2008R2].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO