ENCRYPTBYCERT (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

以憑證的公開金鑰加密資料。

Transact-SQL 語法慣例

Syntax

EncryptByCert ( certificate_ID , { 'cleartext' | @cleartext } )  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

certificate_ID
資料庫中的憑證識別碼。 int.

cleartext
將以憑證加密的資料字串。

@cleartext
下列其中一個類型的變數,包含將利用憑證公開金鑰加密的資料:

  • nvarchar
  • char
  • varchar
  • binary
  • varbinary
  • nchar

傳回型別

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

備註

這個函式是利用憑證的公開金鑰為資料加密。 加密文字只能利用對應的私密金鑰加以解密。 與使用對稱金鑰進行加密和解密相比,這些非對稱轉換的成本相當高。 因此,若是使用大型資料集,不建議您使用非對稱式加密。

範例

這個範例利用稱為 @cleartext 的憑證加密儲存在 JanainaCert02 中的純文字。 加密的資料會插入 ProtectedData04 資料表中。

INSERT INTO [AdventureWorks2022].[ProtectedData04]   
    VALUES ( N'Data encrypted by certificate ''Shipping04''',  
    EncryptByCert(Cert_ID('JanainaCert02'), @cleartext) );  
GO  

另請參閱

DECRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
加密階層