New-SqlColumnMasterKeySettings
建立 SqlColumnMasterKeySettings 物件,描述儲存在任意指定之密鑰存放區提供者和路徑中的主要密鑰。
語法
Default (預設值)
New-SqlColumnMasterKeySettings
[-KeyStoreProviderName] <String>
[-KeyPath] <String>
[[-Signature] <String>]
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-AllowEnclaveComputations]
[<CommonParameters>]
Description
New-SqlColumnMasterKeySettings Cmdlet 會建立 SqlColumnMasterKeySettings 記憶體中物件,以儲存 Always Encrypted 數據行主要密鑰的屬性:KeyStoreProviderName、KeyPath、AllowEnclaveComputations 和 Signature。 此 Cmdlet 可用於自訂金鑰存放區提供者,以及已知密鑰存放區提供者名稱和完整格式的密鑰路徑時。
Cmdlet 可能會與保存資料行主要密鑰的金鑰存放區通訊,以產生金鑰元數據屬性的簽章。
如果金鑰儲存在 Azure 中,您必須為儲存金鑰保存庫或儲存金鑰的受控 HSM 指定有效的驗證令牌。
或者,您可以在呼叫此 Cmdlet 之前,先使用 Add-SqlAzureAuthenticationContext 向 Azure 進行驗證。
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
範例
範例 1:產生 Azure Key Vault 中且未啟用記憶體保護區之數據行主要密鑰的設定。
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
範例 2:產生自定義提供者中數據行主要金鑰的設定
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'CUSTOM_PROVIDER' -KeyPath '\\SecureNetworkShare\Keys\AlwaysEncrypted.key'
範例 3:產生 Azure Key Vault 中數據行主要密鑰的設定,允許記憶體保護區計算,並使用提供的簽章進行簽署。
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -Signature '0x19BEB4F27F582FDBBD0C7E5F92CF161D79D5E7F5A5183F9C8E710252E7028A3654FBEAF834EE45925024F1A32BD3C6D7D92B46E38690830E20E0777607B073E6665EB05E39263C02557D1208ACECB2251A108D0DEFC25232B67FD223C590258C817292FAFCE2388507812D64A0AEC9E546B0B8E4B2F3EA436053CB158F3CF478C5F5EDA511D0F752F60C3B129BF21356A93368FCC7FD6FAA8DB4E919EB551F375181CA3F4D0404A811C99BD2C8D10C0003AC12B138371F2D76611768B4E84D44116C42F00D679B36D41FBD9467B58291B1F4348C7B422793DA0614EF980CA0A7F42B6D627AFA5A753F0869D2C2F9B0FD38289D5433CE9266C6F867334654BE12'
範例 4:產生 Azure Key Vault 中數據行主要密鑰的設定,允許記憶體保護區計算並自動簽署。
# Connect to Azure account.
Import-Module Az.Accounts -MinimumVersion 2.2.0
Connect-AzAccount
# 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 a key vault in Azure Key Vault to sign the column master key properties.
$cmkSettings = New-SqlColumnMasterKeySettings -KeyStoreProviderName 'AZURE_KEY_VAULT' -KeyPath 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -KeyVaultAccessToken $keyVaultAccessToken
參數
-AllowEnclaveComputations
指定資料列主要金鑰是否允許記憶體保護區計算。 如果指定 參數,則允許伺服器端安全記憶體保護區對使用數據行主要密鑰保護的數據執行計算。 不適用於 SQL Server 2017 和舊版。
參數屬性
類型: SwitchParameter
預設值: False
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: 2
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-KeyPath
指定實體主要金鑰之金鑰存放區內的路徑。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: 1
必要: True
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-KeyStoreProviderName
指定用來保護實體主要金鑰之金鑰存放區的提供者名稱。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: 0
必要: True
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-KeyVaultAccessToken
指定 Azure Key Vault 中金鑰保存庫的存取令牌。 如果指定的數據行主要密鑰儲存在 Azure Key Vault 中的金鑰保存庫中,而且 Cmdlet 應該簽署金鑰元數據,請使用此參數。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-ManagedHsmAccessToken
指定 Azure Key Vault 中受控 HSM 的存取令牌。 如果指定的數據行主要密鑰儲存在 Azure Key Vault 中的受控 HSM 中,而且 Cmdlet 預期會簽署金鑰元數據,請使用此參數。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: Named
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
-Signature
指定十六進位字串,這是數據行主要密鑰屬性的數字簽名。 用戶端驅動程式可以驗證簽章,以確保數據行主要密鑰屬性尚未遭到竄改。 只有在指定 AllowEnclaveComputations 時,才允許此參數。 如果指定 AllowEnclaveComputations ,但 Signature 不是,Cmdlet 會自動計算簽章,並填入新 SqlColumnMasterKeySettings 物件的 Signature 屬性。
參數屬性
類型: String
預設值: None
支援萬用字元: False
不要顯示: False
參數集
(All)
Position: 3
必要: False
來自管線的值: False
來自管線按屬性名稱的值: False
來自剩餘引數的值: False
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters 。