CERTPRIVATEKEY (Transact-SQL)

返回二进制格式的证书私钥。 此函数有三个参数。

  • 一个证书 ID。

  • 一个加密密码,用于对该函数返回的私钥位加密,防止密钥以明文形式向用户公开。

  • 一个可选的解密密码。 如果指定了解密密码,则用它来对证书的私钥解密,否则使用数据库主密钥。

只有有权访问证书私钥的用户才能使用此函数。 此函数返回 PVK 格式的私钥。

适用范围:SQL Server(SQL Server 2012 到当前版本)。

语法

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 可用于 public。

示例

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 = '20141031';
GO
SELECT CERTPRIVATEKEY(CERT_ID('Shipping04'), 'jklalkaa/; uia3dd');

有关使用 CERTPRIVATEKEY 和 CERTENCODED 将证书复制到其他数据库中的更为复杂的示例,请参阅主题 CERTENCODED (Transact-SQL) 中的示例 B。

请参阅

参考

安全函数 (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)

安全函数 (Transact-SQL)

sys.certificates (Transact-SQL)