New-SqlColumnMasterKey
在資料庫中建立資料行主要金鑰物件。
語法
ByObject
New-SqlColumnMasterKey
[-Name] <String>
[-InputObject] <Database>
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
ByPath
New-SqlColumnMasterKey
[-Name] <String>
[[-Path] <String>]
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
Description
New-SqlColumnMasterKey Cmdlet 會在資料庫中建立數據行主要密鑰物件。 數據行主要密鑰物件會擷取實體密碼編譯密鑰的位置,該金鑰是要做為 Always Encrypted 功能的數據行主要密鑰。
範例
範例 1:建立參考憑證的數據行主要密鑰物件
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
第一個命令會使用 New-SqlCertificateStoreColumnMasterKeySettings Cmdlet 來建立參考 Windows 證書存儲中憑證的數據行主要設定,並將結果儲存在名為 $CmkSettings的變數中。
範例 2:建立參考 Azure Key Vault 中密鑰的數據行主要密鑰物件
$CmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
第一個命令會使用 New-SqlCertificateStoreColumnMasterKeySettings Cmdlet 來建立參考 Azure Key Vault 中密鑰的數據行主要密鑰物件,並將結果儲存在名為 $CmkSettings的變數中。
範例 3:建立參考支援 CNG 之金鑰的數據行主要密鑰物件
$CmkSettings = New-SqlCngColumnMasterKeySettings -CngProviderName 'Microsoft Software Key Storage Provider' -KeyName 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
第一個命令會使用 New-SqlCertificateStoreColumnMasterKeySettings Cmdlet 來建立數據行主要密鑰物件,參考支援新一代密碼編譯 (CNG) API 的密鑰存放區中的金鑰,並將結果儲存在名為 $CmkSettings的變數中。
範例 4:建立參考支援 CSP 之金鑰的數據行主要金鑰物件
$CmkSettings = New-SqlCspColumnMasterKeySettings 'MyCspProvider' 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
第一個命令會使用 New-SqlCertificateStoreColumnMasterKeySettings Cmdlet 來建立數據行主要密鑰物件,參考金鑰存放區密鑰存放區中的金鑰,並搭配支援密碼編譯 API (CAPI) 的密碼編譯服務提供者 (CSP) 。
範例 5:建立參考憑證的數據行主要密鑰物件、自動簽署並支援記憶體保護區計算
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420' -AllowEnclaveComputations
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
第一個命令會使用 New-SqlCertificateStoreColumnMasterKeySettings Cmdlet 來建立參考支援記憶體保護區計算且儲存在 Windows 證書存儲中的憑證的數據行主要設定。
參數
-AccessToken
用來向 SQL Server 驗證的存取令牌,作為使用者/密碼或 Windows 驗證的替代方案。
例如,這可用來連線到 SQL Azure DB 或 SQL Azure Managed Instance 或 。 Service PrincipalManaged Identity
要使用的參數可以是字串,表示令牌或 PSAccessToken 物件,如執行 Get-AzAccessToken -ResourceUrl https://database.windows.net所傳回。
此參數是模組 v22 的新功能。
參數屬性
| 類型: | PSObject |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-ColumnMasterKeySettings
指定指定實際數據行主要密鑰位置的 SqlColumnMasterKeySettings 物件。
SqlColumnMasterKeySettings 物件有兩個屬性:KeyStoreProviderName 和 KeyPath。
KeyStoreProviderName 指定資料行主要密鑰存放區提供者的名稱,啟用 Always Encrypted 的用戶端驅動程式必須使用它來存取包含數據行主要密鑰的金鑰存放區。
KeyPath 會指定金鑰存放區內數據行主要金鑰的位置。 KeyPath 格式專屬於密鑰存放區。
參數屬性
| 類型: | SqlColumnMasterKeySettings |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Encrypt
線上到 SQL Server 時要使用的加密類型。
此值會對應至 Encrypt Microsoft.Data.SqlClient 驅動程式之 SqlConnection 物件上的 屬性 SqlConnectionEncryptOption 。
在模組的 v22 中,預設值為 Optional (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 「強制」,這可能會為現有的腳本建立重大變更。
此參數是模組 v22 的新功能。
參數屬性
| 類型: | String |
| 預設值: | None |
| 接受的值: | Mandatory, Optional, Strict |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-HostNameInCertificate
用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果您的 SQL Server 實例已啟用強制加密,而且您想要使用主機名/shortname 連線到實例,則必須傳遞此參數。 如果省略此參數,則必須將完整功能變數名稱 (FQDN) 傳遞至 -ServerInstance 才能連線到啟用強制加密的 SQL Server 實例。
此參數是模組 v22 的新功能。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-InputObject
指定此 Cmdlet 執行作業的 SQL 資料庫物件。
參數屬性
| 類型: | Database |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
ByObject
| Position: | 2 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Name
指定這個 Cmdlet 所建立之資料行主要金鑰物件的名稱。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 1 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Path
指定此 Cmdlet 執行作業的 SQL 資料庫路徑。 如果您未指定此參數的值,Cmdlet 會使用目前的工作位置。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
ByPath
| Position: | 2 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Script
指出此 Cmdlet 會傳回執行此 Cmdlet 所執行工作的 Transact-SQL 腳本。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-TrustServerCertificate
指出通道是否會在略過憑證鏈結以驗證信任時加密。
在模組的 v22 中,預設值為 $true (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 『$false』,這可能會為現有的腳本建立重大變更。
此參數是模組 v22 的新功能。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。