BUAT KUNCI ENKRIPSI KOLOM (Transact-SQL)
Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Database Azure SQL Managed Instance yang lebih baru
Membuat objek metadata kunci enkripsi kolom untuk Always Encrypted atau Always Encrypted dengan enklave aman. Objek metadata kunci enkripsi kolom berisi satu atau dua nilai terenkripsi dari kunci enkripsi kolom yang digunakan untuk mengenkripsi data dalam kolom. Setiap nilai dienkripsi menggunakan kunci master kolom.
Sintaks
CREATE COLUMN ENCRYPTION KEY key_name
WITH VALUES
(
COLUMN_MASTER_KEY = column_master_key_name,
ALGORITHM = 'algorithm_name',
ENCRYPTED_VALUE = varbinary_literal
)
[, (
COLUMN_MASTER_KEY = column_master_key_name,
ALGORITHM = 'algorithm_name',
ENCRYPTED_VALUE = varbinary_literal
) ]
[;]
Argumen
key_name
Adalah nama di mana kunci enkripsi kolom akan diketahui dalam database.
column_master_key_name Menentukan nama CMK kustom yang digunakan untuk mengenkripsi kunci enkripsi kolom.
algorithm_name
Nama algoritma enkripsi yang digunakan untuk mengenkripsi nilai kunci enkripsi kolom. Algoritma untuk penyedia sistem harus RSA_OAEP.
varbinary_literal
Nilai kunci enkripsi kolom terenkripsi BLOB.
Peringatan
Jangan pernah meneruskan nilai kunci enkripsi kolom teks biasa dalam pernyataan ini. Melakukannya akan membahayakan manfaat fitur ini.
Keterangan
Pernyataan CREATE COLUMN ENCRYPTION KEY
harus menyertakan setidaknya satu atau dua nilai. Anda dapat menggunakan ALTER COLUMN ENCRYPTION KEY (Transact-SQL) untuk menambahkan nilai kedua nanti. Anda juga dapat menggunakan ALTER COLUMN ENCRYPTION KEY
pernyataan untuk menghapus nilai.
Biasanya, kunci enkripsi kolom dibuat hanya dengan satu nilai terenkripsi. Terkadang, Anda perlu memutar kunci master kolom untuk mengganti kunci master kolom saat ini dengan kunci master kolom baru. Saat Anda perlu memutar kunci, tambahkan nilai baru kunci enkripsi kolom, dienkripsi dengan kunci master kolom baru. Rotasi ini memungkinkan Anda memastikan aplikasi klien dapat mengakses data yang dienkripsi dengan kunci enkripsi kolom, sementara kunci master kolom baru tersedia untuk aplikasi klien. Driver yang diaktifkan Always Encrypted dalam aplikasi klien yang tidak memiliki akses ke kunci master baru, akan menggunakan nilai kunci enkripsi kolom yang dienkripsi dengan kunci master kolom lama untuk mengakses data sensitif.
Algoritma enkripsi, dukungan Always Encrypted, mengharuskan nilai teks biasa memiliki 256 bit.
Disarankan agar Anda menggunakan alat, seperti SQL Server Management Studio (SSMS) atau PowerShell untuk mengelola kunci enkripsi kolom. Alat tersebut menghasilkan nilai terenkripsi dan secara otomatis mengeluarkan CREATE COLUMN ENCRYPTION KEY
pernyataan untuk membuat objek metadata kunci enkripsi kolom. Lihat Menyediakan kunci Always Encrypted menggunakan SQL Server Management Studio dan Menyediakan kunci Always Encrypted menggunakan PowerShell.
Anda juga dapat membuat nilai kunci enkripsi kolom secara terprogram menggunakan penyedia penyimpanan kunci yang merangkum penyimpanan kunci yang menyimpan kunci master kolom. Untuk informasi selengkapnya, lihat Mengembangkan aplikasi menggunakan Always Encrypted.
Gunakan sys.columns (Transact-SQL), sys.column_encryption_keys (Transact-SQL), dan sys.column_encryption_key_values (Transact-SQL) untuk melihat informasi tentang kunci enkripsi kolom.
Izin
Memerlukan izin UBAH KUNCI ENKRIPSI KOLOM APA PUN.
Contoh
J. Membuat kunci enkripsi kolom
Contoh berikut membuat kunci enkripsi kolom yang disebut MyCEK
.
CREATE COLUMN ENCRYPTION KEY MyCEK
WITH VALUES
(
COLUMN_MASTER_KEY = MyCMK,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x01700000016C006F00630061006C006D0061006300680069006E0065002F006D0079002F003200660061006600640038003100320031003400340034006500620031006100320065003000360039003300340038006100350064003400300032003300380065006600620063006300610031006300284FC4316518CF3328A6D9304F65DD2CE387B79D95D077B4156E9ED8683FC0E09FA848275C685373228762B02DF2522AFF6D661782607B4A2275F2F922A5324B392C9D498E4ECFC61B79F0553EE8FB2E5A8635C4DBC0224D5A7F1B136C182DCDE32A00451F1A7AC6B4492067FD0FAC7D3D6F4AB7FC0E86614455DBB2AB37013E0A5B8B5089B180CA36D8B06CDB15E95A7D06E25AACB645D42C85B0B7EA2962BD3080B9A7CDB805C6279FE7DD6941E7EA4C2139E0D4101D8D7891076E70D433A214E82D9030CF1F40C503103075DEEB3D64537D15D244F503C2750CF940B71967F51095BFA51A85D2F764C78704CAB6F015EA87753355367C5C9F66E465C0C66BADEDFDF76FB7E5C21A0D89A2FCCA8595471F8918B1387E055FA0B816E74201CD5C50129D29C015895CD073925B6EA87CAF4A4FAF018C06A3856F5DFB724F42807543F777D82B809232B465D983E6F19DFB572BEA7B61C50154605452A891190FB5A0C4E464862CF5EFAD5E7D91F7D65AA1A78F688E69A1EB098AB42E95C674E234173CD7E0925541AD5AE7CED9A3D12FDFE6EB8EA4F8AAD2629D4F5A18BA3DDCC9CF7F352A892D4BEBDC4A1303F9C683DACD51A237E34B045EBE579A381E26B40DCFBF49EFFA6F65D17F37C6DBA54AA99A65D5573D4EB5BA038E024910A4D36B79A1D4E3C70349DADFF08FD8B4DEE77FDB57F01CB276ED5E676F1EC973154F86
);
GO
Membuat Kunci Enkripsi Kolom dengan Dua Nilai
Contoh berikut membuat kunci enkripsi kolom yang disebut TwoValueCEK
dengan dua nilai.
CREATE COLUMN ENCRYPTION KEY TwoValueCEK
WITH VALUES
(
COLUMN_MASTER_KEY = CMK1,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0037006300380061003100310033003400320037003800620037003000630038003100390062003900630039003400360061006600340039006500610030003200650038006200650038003400340065006C33A82ECF04A7185824B4545457AC5244CD9C219E64067B9520C0081B8399B58C2863F7494ABE3694BD87D55FFD7576FFDC47C28F94ECC99577DF4FB8FA19AA95764FEF889CDE0F176DA5897B74382FBB22756CE2921050A09201A0EB6AF3D6091014C30146EA62635EE8CBF0A8074DEDFF125CEA80D1C0F5E8C58750A07D270E2A8BF824EE4C0C156366BF26D38CCE49EBDD5639A2DF029A7DBAE5A5D111F2F2FA3246DF8C2FA83C1E542C10570FADA98F6B29478DC58CE5CBDD407CCEFCDB97814525F6F32BECA266014AC346AC39C4F185C6C0F0A24FEC4DFA015649624692DE7865B9827BA22C3B574C9FD169F822B609F902288C5880EB25F14BD990D871B1BC4BA3A5B237AF76D26354773FA2A25CF4511AF58C911E601CFCB1905128C997844EED056C2AE7F0B48700AB41307E470FF9520997D0EB0D887DE11AFE574FFE845B7DC6C03FEEE8D467236368FC0CB2FDBD54DADC65B10B3DE6C80DF8B7B3F8F3CE5BE914713EE7B1FA5B7A578359592B8A5FDFDDE5FF9F392BC87C3CD02FBA94582AC063BBB9FFAC803FD489E16BEB28C4E3374A8478C737236A0B232F5A9DDE4D119573F1AEAE94B2192B81575AD6F57E670C1B2AB91045124DFDAEC2898F3F0112026DFC93BF9391D667D1AD7ED7D4E6BB119BBCEF1D1ADA589DD3E1082C3DAD13223BE438EB9574DA04E9D8A06320CAC6D3EC21D5D1C2A0AA484C7C
),
(
COLUMN_MASTER_KEY = CMK2,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0064006500650063006200660034006100340031003000380034006200350033003200360066003200630062006200350030003600380065003900620061003000320030003600610037003800310066001DDA6134C3B73A90D349C8905782DD819B428162CF5B051639BA46EC69A7C8C8F81591A92C395711493B25DCBCCC57836E5B9F17A0713E840721D098F3F8E023ABCDFE2F6D8CC4339FC8F88630ED9EBADA5CA8EEAFA84164C1095B12AE161EABC1DF778C07F07D413AF1ED900F578FC00894BEE705EAC60F4A5090BBE09885D2EFE1C915F7B4C581D9CE3FDAB78ACF4829F85752E9FC985DEB8773889EE4A1945BD554724803A6F5DC0A2CD5EFE001ABED8D61E8449E4FAA9E4DD392DA8D292ECC6EB149E843E395CDE0F98D04940A28C4B05F747149B34A0BAEC04FFF3E304C84AF1FF81225E615B5F94E334378A0A888EF88F4E79F66CB377E3C21964AACB5049C08435FE84EEEF39D20A665C17E04898914A85B3DE23D56575EBC682D154F4F15C37723E04974DB370180A9A579BC84F6BC9B5E7C223E5CBEE721E57EE07EFDCC0A3257BBEBF9ADFFB00DBF7EF682EC1C4C47451438F90B4CF8DA709940F72CFDC91C6EB4E37B4ED7E2385B1FF71B28A1D2669FBEB18EA89F9D391D2FDDEA0ED362E6A591AC64EF4AE31CA8766C259ECB77D01A7F5C36B8418F91C1BEADDD4491C80F0016B66421B4B788C55127135DA2FA625FB7FD195FB40D90A6C67328602ECAF3EC4F5894BFD84A99EB4753BE0D22E0D4DE6A0ADFEDC80EB1B556749B4A8AD00E73B329C95827AB91C0256347E85E3C5FD6726D0E1FE82C925D3DF4A9
);
GO
Lihat Juga
UBAH KUNCI ENKRIPSI KOLOM (Transact-SQL)
JATUHKAN KUNCI ENKRIPSI KOLOM (Transact-SQL)
BUAT KUNCI MASTER KOLOM (Transact-SQL)
sys.column_encryption_keys (T-SQL)
sys.column_encryption_key_values (T-SQL)
sys.columns (Transact-SQL)
Always Encrypted
Always Encrypted dengan kantong aman
Gambaran Umum Manajemen Kunci untuk Always Encrypted
Mengelola kunci untuk Always Encrypted dengan enklave aman