CERTPRIVATEKEY (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
此函数返回二进制格式的证书私钥。 此函数有三个参数。
- 一个证书 ID。
- 一个加密密码,用于加密函数返回的私钥位。 这种方法不会以明文文本形式向用户显示密钥。
- 一个可选的解密密码。 指定的解密密码用于解开此证书的私钥。 否则,使用数据库主密钥。
只有可以访问证书私钥的用户可以使用此函数。 此函数返回 PVK 格式的私钥。
语法
CERTPRIVATEKEY
(
cert_ID
, ' encryption_password '
[ , ' decryption_password ' ]
)
参数
certificate_ID
证书的 certificate_id。 通过 sys.certificates 或通过 CERT_ID (Transact-SQL) 函数获得此值。 cert_id 为 int 数据类型。
encryption_password
用于对返回的二进制值进行加密的密码。
decryption_password
用于对返回的二进制值进行解密的密码。
返回类型
varbinary
备注
同时使用 CERTENCODED 和 CERTPRIVATEKEY 以二进制格式返回证书的其他部分。
权限
CERTPRIVATEKEY 向用户开放使用。
示例
CREATE DATABASE TEST1;
GO
USE TEST1
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Use 5tr0ng P^55Words'
GO
CREATE CERTIFICATE Shipping04
WITH SUBJECT = 'Sammamish Shipping Records',
EXPIRY_DATE = '20401031';
GO
SELECT CERTPRIVATEKEY(CERT_ID('Shipping04'), 'jklalkaa/; uia3dd');
请参阅 CERTENCODED (Transact-SQL) 中的示例 B,查看有关使用 CERTPRIVATEKEY 和 CERTENCODED 将证书复制到其他数据库中的更为复杂的示例。
另请参阅
安全函数 (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)安全性函数 (Transact-SQL)sys.certificates (Transact-SQL)