共用方式為


New-SqlAzureKeyVaultColumnMasterKeySettings

建立 SqlColumnMasterKeySettings 物件,描述儲存在 Azure Key Vault 中的非對稱密鑰。

語法

New-SqlAzureKeyVaultColumnMasterKeySettings
   [-KeyUrl] <String>
   [[-Signature] <String>]
   [-KeyVaultAccessToken <String>]
   [-ManagedHsmAccessToken <String>]
   [-AllowEnclaveComputations]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

Description

建立 SqlColumnMasterKeySettings 物件,描述儲存在密鑰保存庫或 Azure Key Vault 中受控 HSM 中的數據行主要密鑰。

如果您使用 Cmdlet 簽署金鑰元資料,您必須為金鑰保存庫或受控 HSM 指定有效的驗證權杖。 或者,您可以在呼叫此 Cmdlet 之前,先使用 Add-SqlAzureAuthenticationContext 向 Azure 進行驗證。

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

範例

範例 1:建立簡單的 SqlColumnMasterKeySettings 物件

$CMKSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'

此命令會建立 SqlColumnMasterKeySettings 對象,參考 Azure Key Vault 中的密鑰,並將結果儲存在名為 $CMKSettings 的變數中

範例 2:建立具有自動簽署屬性的 SqlColumnMasterKeySettings,以允許記憶體保護區計算

# Obtain an access token for key vaults.
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token

# Pass the token to the cmdlet. It will use the token to communicate with the key vault containing the column master key to sign the column master key metadata properties.
$cmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -keyVaultAccessToken $keyVaultAccessToken

此命令會建立 SqlColumnMasterKeySettings 物件,該對象會參考密鑰保存庫中的密鑰,並將結果儲存在名為 $cmkSettings 的變數中。 金鑰允許記憶體保護區計算。 由於未指定 signature 參數,Cmdlet 會自動計算簽章,並填入 SqlColumnMasterKeySettings 物件的 Signature 屬性。

此範例說明如何取得 Azure Key Vault 中密鑰保存庫的驗證令牌,並將它傳遞至 Cmdlet。

範例 3:建立允許記憶體保護區計算的 SqlColumnMasterKeySettings 物件

# Note: actual signature truncated for brevity
$signature = "0x19BEB4F27F582F...89D5433CE9266C6F867334654BE12"
$cmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -Signature $signature

此命令會建立 SqlColumnMasterKeySettings 物件,該對象會參考密鑰保存庫中的密鑰,並將結果儲存在名為 $cmkSettings 的變數中。 金鑰允許記憶體保護區計算。 密鑰屬性的簽章是在 Signature 參數中指定。

參數

-AllowEnclaveComputations

指定資料列主要金鑰是否允許記憶體保護區計算。 如果指定 參數,則允許伺服器端安全記憶體保護區對使用數據行主要密鑰保護的數據執行計算。 不適用於 SQL Server 2017 和舊版。

類型:SwitchParameter
Position:1
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-KeyUrl

將 Azure Key Vault 或受控 HSM 中的密鑰連結指定為 URL。

類型:String
Position:0
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-KeyVaultAccessToken

指定 Azure Key Vault 中金鑰保存庫的存取令牌。 如果指定的數據行主要密鑰儲存在 Azure Key Vault 中的金鑰保存庫中,而且 Cmdlet 應該簽署金鑰元數據,請使用此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ManagedHsmAccessToken

指定 Azure Key Vault 中受控 HSM 的存取令牌。 如果指定的數據行主要密鑰儲存在 Azure Key Vault 中的受控 HSM 中,而且 Cmdlet 預期會簽署金鑰元數據,請使用此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ProgressAction

決定 PowerShell 如何回應腳本、Cmdlet 或提供者所產生的進度更新,例如 Write-Progress Cmdlet 所產生的進度列。 Write-Progress Cmdlet 會建立顯示命令狀態的進度列。

類型:ActionPreference
別名:proga
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Signature

指定十六進位字串,這是數據行主要密鑰屬性的數字簽名。 用戶端驅動程式可以驗證簽章,以確保數據行主要密鑰屬性尚未遭到竄改。

只有在指定allowEnclaveComputations 時,才允許此參數。 如果 AllowEnclaveComputations 指定,但 Signature 不是,Cmdlet 會自動計算簽章,並填入新 SqlColumnMasterKeySettings 物件的 Signature 屬性。

類型:String
Position:2
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

輸出

SqlColumnMasterKeySettings