CERTPRIVATEKEY (Transact-SQL)

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

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

  • 一个证书 ID。
  • 一个加密密码,用于加密函数返回的私钥位。 这种方法不会以明文文本形式向用户显示密钥。
  • 一个可选的解密密码。 指定的解密密码用于解开此证书的私钥。 否则,使用数据库主密钥。

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

语法

CERTPRIVATEKEY   
    (  
          cert_ID   
        , ' encryption_password '   
      [ , ' decryption_password ' ]  
    )  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

自变量

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)