Bagikan melalui


New-SqlColumnEncryptionKeyEncryptedValue

Membuat nilai terenkripsi kunci enkripsi kolom.

Sintaks

New-SqlColumnEncryptionKeyEncryptedValue
   [-TargetColumnMasterKeySettings] <SqlColumnMasterKeySettings>
   [[-ColumnMasterKeySettings] <SqlColumnMasterKeySettings>]
   [[-EncryptedValue] <String>]
   [-KeyVaultAccessToken <String>]
   [-ManagedHsmAccessToken <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

Deskripsi

cmdlet New-SqlColumnEncryptionKeyEncryptedValue membuat nilai terenkripsi kunci enkripsi kolom. Nilai terenkripsi yang dikembalikan adalah string heksadesimal.

Cmdlet mendukung dua mode operasi:

  • Jika tidak ada nilai terenkripsi yang ditentukan, cmdlet menghasilkan kunci simetris teks biasa baru dan mengenkripsi kunci dengan kunci master kolom yang ditentukan.

  • Jika nilai terenkripsi ditentukan, cmdlet terlebih dahulu mendekripsi nilai terenkripsi yang ditentukan lalu mengenkripsi ulang kunci teks biasa yang diperoleh dengan kunci master kolom yang ditentukan. Cmdlet berkomunikasi dengan penyimpanan kunci yang memegang kunci master kolom. Jika kunci disimpan di Azure, Anda perlu menentukan token autentikasi yang valid untuk brankas kunci atau HSM terkelola yang memegang kunci. Atau, Anda dapat mengautentikasi ke Azure dengan Add-SqlAzureAuthenticationContext sebelum memanggil cmdlet ini.

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

Contoh

Contoh 1: Membuat kunci dan mengenkripsinya menggunakan sertifikat

$cmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -certificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'
New-SqlColumnEncryptionKeyEncryptedValue -TargetColumnMasterKeySettings $cmkSettings

Contoh 2: Buat nilai kunci enkripsi kolom dan enkripsi menggunakan kunci master kolom yang merupakan kunci yang disimpan dalam brankas kunci di Azure Key Vault.

# 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

# Generate a column encryption key value and encrypt it with the column master key. Pass the access token, so that the cmdlet can communicate with Azure Key Vault.
New-SqlColumnEncryptionKeyEncryptedValue -TargetColumnMasterKeySettings $cmkSettings -KeyVaultAccessToken $keyVaultAccessToken

Contoh 3: Dekripsi nilai kunci terenkripsi yang ada, yang diproduksi menggunakan kunci master kolom yang merupakan sertifikat. Enkripsi ulang nilai kunci menggunakan kunci master kolom yang merupakan kunci di 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

# Create a SqlColumnMasterKeySettings object referencing a certificate.
$currentCmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -certificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'

# Create a SqlColumnMasterKeySettings object, referencing a column master key in a key vault in Azure Key Vault.
$targetCmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'

# Decrypt a column encryption key value using the current column master key and re-encrypt it with the new column master key. Pass the access token, so that the cmdlet can communicate with Azure Key Vault. 
New-SqlColumnEncryptionKeyEncryptedValue -TargetColumnMasterKeySettings $targetCmkSettings -ColumnMasterKeySettings $currentCmkSettings -KeyVaultAccessToken $keyVaultAccessToken -EncryptedValue '0x016E000001630075007200720065006E00740075007300650072002F006D0079002F006200330039003900340035006200370031003100330037003700350032006400380061003100310033003900660035006200640036006400380066003700330038006600320033006200360032003000307925663D2C3E275DD272E15E606927DA4326F5735C2C8E84F91B9EFE44F503ED01C130984E83AF4513F8A4A8D0878D42364E958291AE25111A868D25B69FC5143EEC04131DA27D05F3442CB665ACB4BB3F6A7A9F07DBD5D212A772414A2CCA03BEBEB7BF0E22C644C715D739B983872AFB2D390229A0B5311BCA07E3C1D857EE8982320BBBE9382C960B9674E3CC3D618AD623D6A362BEAEF68B1B1BB49660DD643A4375A9285CD9EAA5B13BFE2792DA92025351E7B6067BA07B6178D03041F40F00D84326627094C9D6944DD912497B080058A529D2DA11C8D609604449714420B4E44ECD1EB26DEE18BF712146A51DD99A02E3D4EE692A503CF02F874497010772DE743DDFB2A74801AC9A94C876D1F93554B70CE0ECC437E7FC28BC11A08222977CDA807E256ED536C41700C631878226E513AFE1199A1DB4732F975AA09A1E75B8A19802AE018871A7A0AD5B1E29B942F30490EDABD310A4170B991EBCFDA2AFE43285D5406476204B381D8A33EEB0B967073B4C0127B1C7F0281AB310EE4B9A3C2D3EAB44A1F5D15D4739FFAEF6110ED4808446F6A05DBF4121B2B33A0AF5A457CD38F895B8F7ABDF792E3ADBC3AF55B1442625F88F80127D08DE9E4AC1BB2AAA46843A477135053CEEFA4327D8C999C16D8B49C225F34AD7588A5F9E93FB5532B1F1DC5AFB3CE23DDC8DC12327DD6B5985104D14F4A1BC0F61F0AACD'

Parameter

-ColumnMasterKeySettings

Menentukan objek SqlColumnMasterKeySettings yang digunakan cmdlet ini untuk menemukan tempat kunci master kolom disimpan.

Jenis:SqlColumnMasterKeySettings
Position:1
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-EncryptedValue

Menentukan nilai terenkripsi yang ada.

Jika Anda menentukan nilai untuk parameter ini, cmdlet akan terlebih dahulu mendekripsi nilai ini menggunakan kunci master kolom yang direferensikan oleh parameter ColumnMasterKeySettings lalu mengenkripsi ulang menggunakan kunci master kolom yang direferensikan oleh parameter TargetColumnMasterKeySettings.

Jenis:String
Position:2
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-KeyVaultAccessToken

Menentukan token akses untuk brankas kunci di Azure Key Vault. Gunakan parameter ini jika kunci master kolom untuk mengenkripsi atau mendekripsi kunci enkripsi kolom konten disimpan dalam brankas kunci di Azure Key Vault.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ManagedHsmAccessToken

Menentukan token akses untuk HSM terkelola di Azure Key Vault. Gunakan parameter ini jika kunci master kolom untuk mengenkripsi atau mendekripsi kunci enkripsi kolom konten disimpan dalam HSM terkelola di Azure Key Vault.

Jenis:String
Position:Named
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

-TargetColumnMasterKeySettings

Menentukan objek SqlColumnMasterKeySettings yang digunakan cmdlet ini untuk menentukan di mana kunci master kolom, yang akan digunakan untuk mengenkripsi nilai terenkripsi baru, disimpan.

Jenis:SqlColumnMasterKeySettings
Position:0
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

Output

String