ENCRYPTBYCERT (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

使用证书的公钥加密数据。

Transact-SQL 语法约定

语法

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

参数

certificate_ID
数据库中证书的 ID。 int。

cleartext
将使用证书进行加密的数据字符串。

@cleartext
以下其中一种类型的变量,其中包含将使用证书的公钥进行加密的数据:

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

返回类型

varbinary(最大大小为 8000 个字节)。

注解

此函数使用证书的公钥对数据进行加密。 只能使用相应的私钥对加密文本进行解密。 相较使用对称密钥进行加密和解密的方法,这些非对称转换的开销更大。 因此,建议在处理大型数据集时不要使用非对称加密。

示例

此示例将以称为 @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)
加密层次结构