CERTPRIVATEKEY (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

此函式會以二進位格式傳回憑證的私密金鑰。 這個函數會採用三個引數。

  • 憑證識別碼。
  • 加密密碼,用來加密函式所傳回的私密金鑰位元。 這種方法不會向使用者公開純文字格式的金鑰。
  • 選擇性解密密碼。 使用指定的解密密碼,來解密憑證的私密金鑰。 否則,會使用資料庫主要金鑰。

只有具有憑證私密金鑰存取權的使用者才能使用此函式。 這個函數會傳回 PVK 格式的私密金鑰。

Syntax

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

備註

搭配使用 CERTENCODEDCERTPRIVATEKEY,以透過二進位格式傳回憑證的不同部分。

權限

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');  

如需使用 CERTPRIVATEKEYCERTENCODED 將憑證複製至其他資料庫的更複雜範例,請參閱 CERTENCODED (Transact-SQL) (部分機器翻譯) 中的範例 B。

另請參閱

安全性函數 (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)安全性函式 (Transact-SQL)sys.certificates (Transact-SQL)