BUAT KUNCI ENKRIPSI KOLOM (Transact-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan database Azure SQL yang lebih baru Azure SQL Managed Instance

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.

Konvensi sintaks transact-SQL

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 melewati 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 Always Encrypted diaktifkan 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, Always Encrypted mendukung, 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 kunci SQL Server Management Studio dan Provisi Always Encrypted menggunakan PowerShell.

Anda juga dapat menghasilkan 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

A. 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)
HILANGKAN KUNCI ENKRIPSI KOLOM (Transact-SQL)
BUAT KUNCI MASTER KOLOM (Transact-SQL)
sys.column_encryption_keys (Transact-SQL)
sys.column_encryption_key_values (T-SQL)
sys.columns (Transact-SQL)
Always Encrypted
Always Encrypted dengan kantong aman
Ringkasan Manajemen Kunci untuk Always Encrypted
Mengelola kunci untuk Always Encrypted dengan enklave aman