共用方式為


DecryptByCert (Transact-SQL)

以憑證的私密金鑰為資料解密。

主題連結圖示Transact-SQL 語法慣例

語法

DecryptByCert ( 
                            certificate_ID , 
              { 'ciphertext' | @ciphertext } 
              [ , { 'cert_password' | @cert_password } ]
                            )

引數

  • certificate_ID
    這是資料庫中的憑證識別碼。 int.
  • ciphertext
    這是已經利用憑證私密金鑰加密的資料字串。
  • @ciphertext
    這是 varbinary 類型的變數,其中包含已利用憑證加密的資料。
  • cert_password
    這是為憑證的私密金鑰加密所用的密碼。它必須是 Unicode。
  • @cert_password
    這是 ncharnvarchar 類型的變數,其中包含用來加密憑證私密金鑰的密碼。它必須是 Unicode。

傳回類型

varbinary,大小上限為 8,000 位元組。

備註

這個函數是利用憑證的私密金鑰為資料解密。使用非對稱金鑰來轉換密碼編譯,會耗用大量資源。因此,EncryptByCert 和 DecryptByCert 不適用於使用者資料的常式加密。

範例

下列範例會從標示為 data encrypted by certificate JanainaCert02[AdventureWorks].[ProtectedData04] 選取資料列。這個範例使用憑證 JanainaCert02 的私密金鑰將加密文字解密;一開始先以憑證的密碼 pGFD4bb925DGvbd2439587y 將憑證解密。解密的資料會從 varbinary 轉換為 nvarchar

SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
    ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks].[ProtectedData04] 
WHERE Description 
    = N'data encrypted by certificate '' JanainaCert02''';
GO

請參閱

參考

EncryptByCert (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)

其他資源

加密階層

說明及資訊

取得 SQL Server 2005 協助