Bagikan melalui


New-SqlColumnEncryptionKeyEncryptedValue

Membuat nilai terenkripsi kunci enkripsi kolom.

Sintaks

Default (Default)

New-SqlColumnEncryptionKeyEncryptedValue
    [-TargetColumnMasterKeySettings] <SqlColumnMasterKeySettings>
    [[-ColumnMasterKeySettings] <SqlColumnMasterKeySettings>]
    [[-EncryptedValue] <String>]
    [-KeyVaultAccessToken <String>]
    [-ManagedHsmAccessToken <String>]
    [<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.

Properti parameter

Jenis:SqlColumnMasterKeySettings
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:1
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:2
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:SqlColumnMasterKeySettings
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

Output

String