New-SqlColumnMasterKey
Membuat objek kunci master kolom dalam database.
Sintaks
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[-InputObject] <Database>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Deskripsi
cmdlet New-SqlColumnMasterKey membuat objek kunci master kolom dalam database. Objek kunci master kolom menangkap lokasi kunci kriptografi fisik yang dimaksudkan untuk digunakan sebagai kunci master kolom untuk fitur Always Encrypted.
Contoh
Contoh 1: Membuat objek kunci master kolom yang mereferensikan sertifikat
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
Perintah pertama menggunakan cmdlet New-SqlCertificateStoreColumnMasterKeySettings untuk membuat pengaturan master kolom yang mereferensikan sertifikat di Windows Certificate Store dan menyimpan hasilnya dalam variabel bernama $CmkSettings
.
Contoh 2: Membuat objek kunci master kolom yang mereferensikan kunci di Azure Key Vault
$CmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
Perintah pertama menggunakan cmdlet New-SqlCertificateStoreColumnMasterKeySettings untuk membuat objek kunci master kolom yang mereferensikan kunci di Azure Key Vault dan menyimpan hasilnya dalam variabel bernama $CmkSettings
.
Contoh 3: Membuat objek kunci master kolom yang mereferensikan kunci yang mendukung CNG
$CmkSettings = New-SqlCngColumnMasterKeySettings -CngProviderName 'Microsoft Software Key Storage Provider' -KeyName 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
Perintah pertama menggunakan New-SqlCertificateStoreColumnMasterKeySettings cmdlet untuk membuat objek kunci master kolom yang mereferensikan kunci di penyimpanan kunci yang mendukung Cryptography Next Generation (CNG) API dan menyimpan hasilnya dalam variabel bernama $CmkSettings
.
Contoh 4: Membuat objek kunci master kolom yang mereferensikan kunci yang mendukung CSP
$CmkSettings = New-SqlCspColumnMasterKeySettings 'MyCspProvider' 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
Perintah pertama menggunakan cmdlet New-SqlCertificateStoreColumnMasterKeySettings untuk membuat objek kunci master kolom yang mereferensikan kunci di penyimpanan kunci penyimpanan kunci dengan Penyedia Layanan Kriptografi (CSP) yang mendukung Cryptography API (CAPI).
Contoh 5: Membuat objek kunci master kolom yang mereferensikan sertifikat, ditandatangani secara otomatis dan mendukung komputasi enklave
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420' -AllowEnclaveComputations
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
Perintah pertama menggunakan New-SqlCertificateStoreColumnMasterKeySettings cmdlet untuk membuat pengaturan master kolom yang merujuk sertifikat yang mendukung komputasi enklave dan disimpan di Windows Certificate Store.
Parameter
-AccessToken
Token akses yang digunakan untuk mengautentikasi ke SQL Server, sebagai alternatif untuk pengguna/kata sandi atau Autentikasi Windows.
Ini dapat digunakan, misalnya, untuk menyambungkan ke SQL Azure DB
dan SQL Azure Managed Instance
menggunakan Service Principal
atau Managed Identity
.
Parameter yang digunakan dapat berupa string yang mewakili token atau objek PSAccessToken
seperti yang dikembalikan dengan menjalankan Get-AzAccessToken -ResourceUrl https://database.windows.net
.
Parameter ini baru dalam v22 modul.
Jenis: | PSObject |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ColumnMasterKeySettings
Menentukan objek
Objek
KeyStoreProviderName menentukan nama penyedia penyimpanan kunci master kolom, yang harus digunakan driver klien yang didukung Always Encrypted untuk mengakses penyimpanan kunci yang berisi kunci master kolom.
KeyPath menentukan lokasi kunci master kolom dalam penyimpanan kunci. Format KeyPath
Jenis: | SqlColumnMasterKeySettings |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Encrypt
Jenis enkripsi yang akan digunakan saat menyambungkan ke SQL Server.
Nilai ini memetakan ke properti Encrypt
SqlConnectionEncryptOption
pada objek SqlConnection driver Microsoft.Data.SqlClient.
Dalam v22 modul, defaultnya adalah Optional
(untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah 'Wajib', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.
Parameter ini baru dalam v22 modul.
Jenis: | String |
Nilai yang diterima: | Mandatory, Optional, Strict |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-HostNameInCertificate
Nama host yang akan digunakan dalam memvalidasi sertifikat SQL Server TLS/SSL. Anda harus meneruskan parameter ini jika instans SQL Server Anda diaktifkan untuk Enkripsi Paksa dan Anda ingin terhubung ke instans menggunakan nama host/nama pendek. Jika parameter ini dihilangkan, maka meneruskan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) ke -ServerInstance diperlukan untuk terhubung ke instans SQL Server yang diaktifkan untuk Enkripsi Paksa.
Parameter ini baru dalam v22 modul.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-InputObject
Menentukan objek database SQL, yang cmdlet ini menjalankan operasi.
Jenis: | Database |
Position: | 2 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Name
Menentukan nama objek kunci master kolom yang dibuat cmdlet ini.
Jenis: | String |
Position: | 1 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Path
Menentukan jalur database SQL, yang cmdlet ini menjalankan operasi. Jika Anda tidak menentukan nilai untuk parameter ini, cmdlet menggunakan lokasi kerja saat ini.
Jenis: | String |
Position: | 2 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ProgressAction
Menentukan bagaimana PowerShell merespons pembaruan kemajuan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti bilah kemajuan yang dihasilkan oleh cmdlet Write-Progress. cmdlet Write-Progress membuat bilah kemajuan yang memperlihatkan status perintah.
Jenis: | ActionPreference |
Alias: | proga |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Script
Menunjukkan bahwa cmdlet ini mengembalikan skrip Transact-SQL yang melakukan tugas yang dilakukan cmdlet ini.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-TrustServerCertificate
Menunjukkan apakah saluran akan dienkripsi saat melewati rantai sertifikat untuk memvalidasi kepercayaan.
Dalam v22 modul, defaultnya adalah $true
(untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah '$false', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.
Parameter ini baru dalam v22 modul.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
Microsoft.SqlServer.Management.Smo.Database
Output
Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey