ENCRYPTBYCERT (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure 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)
加密层次结构