Always Encrypted
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance

Always Encrypted adalah fitur yang dirancang untuk melindungi data sensitif, seperti nomor kartu kredit atau nomor identifikasi nasional (misalnya, nomor jaminan sosial AS), disimpan dalam Azure SQL Database atau database SQL Server. Always Encrypted memungkinkan klien untuk mengenkripsi data sensitif di dalam aplikasi klien dan tidak pernah mengungkapkan kunci enkripsi ke Mesin Database (SQL Database atau SQL Server). Akibatnya, Always Encrypted menyediakan pemisahan antara mereka yang memiliki data dan dapat melihatnya, dan mereka yang mengelola data tetapi seharusnya tidak memiliki akses. Dengan memastikan administrator database lokal, operator database cloud, atau pengguna tidak sah dengan hak istimewa tinggi lainnya, tidak dapat mengakses data terenkripsi, Always Encrypted memungkinkan pelanggan untuk menyimpan data sensitif dengan percaya diri di luar kontrol langsung mereka. Ini memungkinkan organisasi untuk menyimpan data mereka di Azure, dan memungkinkan delegasi administrasi database lokal kepada pihak ketiga, atau untuk mengurangi persyaratan izin keamanan untuk staf DBA mereka sendiri.
Always Encrypted menyediakan kemampuan komputasi rahasia dengan memungkinkan Mesin Database memproses beberapa kueri pada data terenkripsi, sambil mempertahankan kerahasiaan data dan memberikan manfaat keamanan di atas. Pada SQL Server 2016 (13.x), SQL Server 2017 (14.x) dan dalam Azure SQL Database, Always Encrypted mendukung perbandingan kesetaraan melalui enkripsi deterministik. Lihat Memilih Enkripsi Deterministik atau Acak.
Catatan
Pada SQL Server 2019 (15.x), enklave aman secara substansial memperluas kemampuan komputasi rahasia Always Encrypted dengan pencocokan pola, operator perbandingan lainnya, dan enkripsi di tempat. Lihat Always Encrypted dengan enklave aman.
Always Encrypted membuat enkripsi transparan terhadap aplikasi. Driver yang didukung Always Encrypted yang diinstal pada komputer klien mencapai hal ini dengan mengenkripsi dan mendekripsi data sensitif dalam aplikasi klien secara otomatis. Driver mengenkripsi data dalam kolom sensitif sebelum meneruskan data ke Mesin Database, dan secara otomatis menulis ulang kueri sehingga semantik ke aplikasi dipertahankan. Demikian pula, driver secara transparan mendekripsi data, disimpan dalam kolom database terenkripsi, yang berada dalam hasil kueri.
Always Encrypted tersedia di semua edisi Azure SQL Database, dimulai dengan SQL Server 2016 (13.x) dan semua tingkat layanan SQL Database. (Sebelum SQL Server 2016 (13.x) SP1, Always Encrypted terbatas pada Edisi Perusahaan.) Untuk presentasi Saluran 9 yang menyertakan Always Encrypted, lihat Menjaga Keamanan Data Sensitif dengan Always Encrypted.
Skenario Umum
Klien dan data lokal
Pelanggan memiliki aplikasi klien dan SQL Server keduanya berjalan secara lokal, di lokasi bisnis mereka. Pelanggan ingin menyewa vendor eksternal untuk mengelola SQL Server. Untuk melindungi data sensitif yang disimpan dalam SQL Server, pelanggan menggunakan Always Encrypted untuk memastikan pemisahan tugas antara administrator database dan administrator aplikasi. Pelanggan menyimpan nilai teks biasa kunci Always Encrypted di penyimpanan kunci tepercaya, yang dapat diakses aplikasi klien. SQL Server administrator tidak memiliki akses ke kunci dan, oleh karena itu, tidak dapat mendekripsi data sensitif yang disimpan dalam SQL Server.
Klien lokal dengan data di Azure
Pelanggan memiliki aplikasi klien lokal di lokasi bisnis mereka. Aplikasi ini beroperasi pada penyimpanan data sensitif dalam database yang dihosting di Azure (SQL Database atau SQL Server yang berjalan di mesin virtual pada Microsoft Azure). Pelanggan menggunakan Always Encrypted dan menyimpan kunci Always Encrypted di penyimpanan kunci tepercaya yang dihosting lokal, untuk memastikan administrator cloud Microsoft tidak memiliki akses ke data sensitif.
Klien dan Data di Azure
Pelanggan memiliki aplikasi klien, dihosting di Microsoft Azure (misalnya, dalam peran pekerja atau peran web), yang beroperasi pada penyimpanan data sensitif dalam database yang dihosting di Azure (SQL Database atau SQL Server yang berjalan di mesin virtual di Microsoft Azure). Meskipun Always Encrypted tidak memberikan isolasi lengkap data dari administrator cloud, karena data dan kunci diekspos ke administrator cloud platform yang menghosting tingkat klien, pelanggan masih mendapat manfaat dari mengurangi area permukaan serangan keamanan (data selalu dienkripsi dalam database).
Cara Kerjanya
Anda dapat mengonfigurasi Always Encrypted untuk kolom database individual yang berisi data sensitif Anda. Saat menyiapkan enkripsi untuk kolom, Anda menentukan informasi tentang algoritma enkripsi dan kunci kriptografi yang digunakan untuk melindungi data di kolom tersebut. Always Encrypted menggunakan dua jenis kunci: kunci enkripsi kolom dan kunci master kolom. Kunci enkripsi kolom digunakan untuk mengenkripsi data dalam kolom terenkripsi. Kunci master kolom adalah kunci pelindung kunci yang mengenkripsi satu atau beberapa kunci enkripsi kolom.
Mesin Database menyimpan konfigurasi enkripsi untuk setiap kolom dalam metadata database. Namun, perhatikan, Mesin Database tidak pernah menyimpan atau menggunakan kunci dari kedua jenis dalam teks biasa. Mesin Database hanya menyimpan nilai terenkripsi dari kunci enkripsi kolom dan informasi tentang lokasi kunci master kolom, yang disimpan di penyimpanan kunci tepercaya eksternal, seperti Azure Key Vault, Windows Certificate Store di mesin klien, atau modul keamanan perangkat keras.
Untuk mengakses data yang disimpan dalam kolom terenkripsi dalam teks biasa, aplikasi harus menggunakan driver klien yang diaktifkan Always Encrypted. Saat aplikasi mengeluarkan kueri berparameter, driver secara transparan berkolaborasi dengan Mesin Database untuk menentukan parameter mana yang menargetkan kolom terenkripsi dan, oleh karena itu, harus dienkripsi. Untuk setiap parameter yang perlu dienkripsi, driver memperoleh informasi tentang algoritma enkripsi dan nilai terenkripsi dari kunci enkripsi kolom untuk kolom tersebut, target parameter, serta lokasi kunci master kolom yang sesuai.
Selanjutnya, driver menghubungi penyimpanan kunci, yang berisi kunci master kolom, untuk mendekripsi nilai kunci enkripsi kolom terenkripsi dan kemudian, menggunakan kunci enkripsi kolom teks biasa untuk mengenkripsi parameter. Kunci enkripsi kolom teks biasa yang dihasilkan di-cache untuk mengurangi jumlah komunikasi dua arah ke penyimpanan kunci pada penggunaan berikutnya dari kunci enkripsi kolom yang sama. Driver menggantikan nilai teks biasa dari parameter yang menargetkan kolom terenkripsi dengan nilai terenkripsi mereka, dan mengirimkan kueri ke server untuk diproses.
Server menghitung tataan hasil, dan untuk setiap kolom terenkripsi yang termasuk dalam tataan hasil, driver melampirkan metadata enkripsi untuk kolom tersebut, termasuk informasi tentang algoritme enkripsi dan kunci yang sesuai. Pertama-tama driver mencoba menemukan kunci enkripsi kolom teks biasa di cache lokal, dan hanya akan mencari satu kali ke kunci master kolom jika tidak dapat menemukan kunci di cache. Selanjutnya, driver mendekripsi hasil dan menampilkan nilai teks biasa ke aplikasi.
Driver klien berinteraksi dengan penyimpanan kunci, yang berisi kunci master kolom, menggunakan penyedia penyimpanan kunci master kolom, yang merupakan komponen perangkat lunak sisi klien yang merangkum penyimpanan kunci yang berisi kunci master kolom. Penyedia untuk jenis penyimpanan kunci yang umum tersedia di pustaka driver sisi klien dari Microsoft atau sebagai unduhan mandiri. Anda juga dapat menerapkan penyedia Anda sendiri. Kemampuan Always Encrypted, termasuk penyedia penyimpanan kunci master kolom bawaan bervariasi berdasarkan pustaka driver dan versinya.
Untuk detail tentang cara mengembangkan aplikasi menggunakan Always Encrypted dengan driver klien tertentu, lihat Mengembangkan aplikasi menggunakan Always Encrypted.
Keterangan
Enkripsi dan dekripsi terjadi melalui driver klien. Ini berarti bahwa beberapa tindakan yang terjadi hanya sisi server tidak akan berfungsi saat menggunakan Always Encrypted. Tindakan ini termasuk (tetapi tidak terbatas pada):
- Menyalin data dari satu kolom ke kolom lainnya melalui UPDATE, BULK INSERT(T-SQL), SELECT INTO, INSERT.. PILIH.
- Pemicu, tabel temporal, kolom jarang, teks lengkap, OLTP dalam memori, dan Change Data Capture (CDC).
Berikut ini adalah contoh UPDATE yang mencoba memindahkan data dari kolom terenkripsi ke kolom yang tidak terenkripsi tanpa mengembalikan tataan hasil ke klien:
update dbo.Patients set testssn = SSN
Jika SSN adalah kolom yang dienkripsi menggunakan Always Encrypted, pernyataan pembaruan di atas akan gagal dengan kesalahan yang mirip dengan:
Msg 206, Level 16, State 2, Line 89
Operand type clash: char(11) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_1', column_encryption_key_database_name = 'ssn') collation_name = 'Latin1_General_BIN2' is incompatible with char
Agar berhasil memperbarui kolom, lakukan hal berikut:
- PILIH data dari kolom SSN, dan simpan sebagai tataan hasil dalam aplikasi. Ini akan memungkinkan aplikasi ( driver klien) untuk mendekripsi kolom.
- SISIPKAN data dari kumpulan hasil ke dalam SQL Server.
Penting
Dalam skenario ini, data akan tidak terenkripsi saat dikirim kembali ke server karena kolom tujuan adalah varchar reguler yang tidak menerima data terenkripsi.
Memilih Enkripsi Deterministik atau Acak
Mesin Database tidak pernah beroperasi pada data teks biasa yang disimpan dalam kolom terenkripsi, tetapi masih mendukung beberapa kueri pada data terenkripsi, tergantung pada jenis enkripsi untuk kolom tersebut. Always Encrypted mendukung dua jenis enkripsi: enkripsi acak dan enkripsi deterministik.
Enkripsi deterministik selalu menghasilkan nilai terenkripsi yang sama untuk nilai teks biasa yang diberikan. Menggunakan enkripsi deterministik memungkinkan Anda untuk melakukan pencarian titik, penggabungan kesetaraan, pengelompokan, dan pengindeksan pada kolom terenkripsi. Namun, mungkin juga memungkinkan pengguna yang tidak sah untuk menebak informasi tentang nilai terenkripsi dengan memeriksa pola di kolom terenkripsi, terutama jika ada sekumpulan kecil kemungkinan nilai terenkripsi, seperti True/False, atau wilayah Utara/Selatan/Timur/Barat. Enkripsi deterministik harus menggunakan kolase kolom dengan urutan sortir biner2 untuk kolom karakter.
Enkripsi acak menggunakan metode yang mengenkripsi data dengan cara yang kurang dapat diprediksi. Enkripsi acak lebih aman, tetapi enkripsi ini mencegah pencarian, pengelompokan, pengindeksan, dan penggabungan pada kolom terenkripsi.
Gunakan enkripsi deterministik untuk kolom yang akan digunakan sebagai parameter pencarian atau pengelompokan. Misalnya, nomor ID pemerintah. Gunakan enkripsi acak untuk data seperti komentar investigasi rahasia, yang tidak dikelompokkan dengan rekaman lain dan tidak digunakan untuk menggabungkan tabel. Untuk detail tentang algoritma kriptografi Always Encrypted, lihat kriptografi Always Encrypted.
Mengonfigurasi Always Encrypted
Penyiapan awal Always Encrypted dalam database melibatkan pembuatan kunci Always Encrypted, pembuatan metadata kunci, konfigurasi properti enkripsi kolom database yang dipilih, dan/atau enkripsi data yang mungkin sudah ada di kolom yang perlu dienkripsi. Harap dicatat bahwa beberapa tugas ini tidak didukung dalam Transact-SQL dan memerlukan penggunaan alat sisi klien. Karena kunci Always Encrypted dan data sensitif yang dilindungi tidak pernah terungkap dalam teks biasa ke server, Mesin Database tidak dapat terlibat dalam provisi kunci dan melakukan operasi enkripsi atau dekripsi data. Anda dapat menggunakan SQL Server Management Studio atau PowerShell untuk menyelesaikan tugas tersebut.
| Tugas | SSMS | PowerShell | T-SQL |
|---|---|---|---|
| Menyediakan kunci master kolom, kunci enkripsi kolom, dan kunci enkripsi kolom terenkripsi dengan kunci master kolom yang sesuai. | Ya | Ya | Tidak |
| Membuat metadata kunci dalam database. | Ya | Ya | Ya |
| Membuat tabel baru dengan kolom terenkripsi | Ya | Ya | Ya |
| Mengenkripsi data yang ada di kolom database yang dipilih | Ya | Ya | Tidak |
Catatan
Always Encrypted dengan enklave aman, yang diperkenalkan pada SQL Server 2019 (15.x), mendukung enkripsi data yang ada menggunakan Transact-SQL. Ini juga menghilangkan kebutuhan untuk memindahkan data di luar database untuk operasi kriptografi.
Catatan
Pastikan Anda menjalankan provisi kunci atau alat enkripsi data di lingkungan yang aman, di komputer yang berbeda dari komputer yang menghosting database Anda. Jika tidak, data sensitif atau kunci dapat bocor ke lingkungan server, yang akan mengurangi manfaat penggunaan Always Encrypted.
Untuk detail tentang mengonfigurasi Always Encrypted lihat:
- Mengonfigurasi Always Encrypted menggunakan SSMS
- Mengonfigurasi Always Encrypted menggunakan PowerShell
Mulai menggunakan Always Encrypted
Gunakan Wizard Always Encrypted untuk mulai menggunakan Always Encrypted dengan cepat. Wizard akan menyediakan kunci yang diperlukan dan mengonfigurasi enkripsi untuk kolom yang dipilih. Jika kolom yang Anda atur enkripsinya sudah berisi beberapa data, wizard akan mengenkripsi data. Contoh berikut menunjukkan proses untuk mengenkripsi kolom.
- Koneksi ke database yang sudah ada yang berisi tabel dengan kolom yang ingin Anda enkripsi menggunakan Object Explorer Management Studio, atau membuat database baru, membuat satu atau beberapa tabel dengan kolom untuk dienkripsi, dan menyambungkannya.
- Klik kanan database Anda, arahkan ke Tugas, lalu klik Enkripsi Kolom untuk membuka Panduan Always Encrypted.
- Tinjau halaman Pengenalan , lalu klik Berikutnya.
- Pada halaman Pilihan Kolom , perluas tabel, dan pilih kolom yang ingin Anda enkripsi.
- Untuk setiap kolom yang dipilih untuk enkripsi, atur Jenis Enkripsi ke Deterministik atau Acak.
- Untuk setiap kolom yang dipilih untuk enkripsi, pilih Kunci Enkripsi. Jika sebelumnya Anda belum membuat kunci enkripsi apa pun untuk database ini, pilih pilihan default kunci yang dibuat secara otomatis baru, lalu klik Berikutnya.
- Pada halaman Konfigurasi Kunci Master , pilih lokasi untuk menyimpan kunci baru, dan pilih sumber kunci master, lalu klik Berikutnya.
- Pada halaman Validasi , pilih apakah akan segera menjalankan skrip atau membuat skrip PowerShell, lalu klik Berikutnya.
- Pada halaman Ringkasan , tinjau opsi yang Anda pilih, lalu klik Selesai. Tutup wizard setelah selesai.
Detail Fitur
Kueri dapat melakukan perbandingan kesetaraan pada kolom yang dienkripsi menggunakan enkripsi deterministik, tetapi tidak ada operasi lain (misalnya, lebih besar/kurang dari, pencocokan pola menggunakan operator LIKE, atau operasi aritmatika).
Kueri pada kolom yang dienkripsi dengan menggunakan enkripsi acak tidak dapat melakukan operasi pada salah satu kolom tersebut. Kolom pengindeksan yang dienkripsi menggunakan enkripsi acak tidak didukung.
Catatan
Always Encrypted dengan enklave aman, yang diperkenalkan pada SQL Server 2019 (15.x), mengatasi batasan di atas dengan mengaktifkan pencocokan pola, operator perbandingan, dan pengindeksan pada kolom menggunakan enkripsi acak.
Kunci enkripsi kolom dapat memiliki hingga dua nilai terenkripsi yang berbeda, masing-masing dienkripsi dengan kunci master kolom yang berbeda. Ini memfasilitasi rotasi kunci master kolom.
Enkripsi deterministik mengharuskan kolom memiliki salah satu kolase biner2.
Setelah mengubah definisi objek terenkripsi, jalankan sp_refresh_parameter_encryption untuk memperbarui metadata Always Encrypted untuk objek.
Always Encrypted tidak didukung untuk kolom dengan karakteristik di bawah ini. Misalnya, jika salah satu kondisi berikut berlaku untuk kolom, ENCRYPTED WITH klausa tidak dapat digunakan untuk CREATE TABLE/ALTER TABLE kolom:
- Kolom yang menggunakan salah satu jenis data berikut:
xml, ,timestamp/rowversion,image,ntexttext,sql_variant,hierarchyid,geography, ,geometryalias, jenis yang ditentukan pengguna. FILESTREAMkolom- Kolom dengan
IDENTITYproperti . - Kolom dengan
ROWGUIDCOLproperti . - Kolom string (
varchar,char, dll.) dengan kolab non-bin2. - Kolom yang merupakan kunci untuk indeks berkluster dan non-kluster saat menggunakan enkripsi acak (enkripsi deterministik didukung).
- Kolom yang disertakan dalam indeks teks lengkap (Always Encrypted tidak mendukung Pencarian Teks Lengkap).
- Kolom komputasi.
- Kolom yang direferensikan oleh kolom komputasi (saat ekspresi melakukan operasi yang tidak didukung untuk Always Encrypted).
- Kumpulan kolom jarang.
- Kolom yang direferensikan oleh statistik saat menggunakan enkripsi acak (enkripsi deterministik didukung).
- Kolom menggunakan jenis alias.
- Kolom partisi.
- Kolom dengan batasan default.
- Kolom yang direferensikan oleh batasan unik saat menggunakan enkripsi acak (enkripsi deterministik didukung).
- Kolom kunci primer saat menggunakan enkripsi acak (enkripsi deterministik didukung).
- Mereferensikan kolom dalam batasan kunci asing saat menggunakan enkripsi acak atau saat menggunakan enkripsi deterministik, jika kolom yang direferensikan dan referensi menggunakan kunci atau algoritma yang berbeda.
- Kolom yang dirujuk oleh batasan pemeriksaan.
- Kolom yang diambil/dilacak menggunakan ubah pengambilan data.
- Kolom kunci primer pada tabel yang memiliki pelacakan perubahan.
- Kolom yang diselubungi (menggunakan Masking Data Dinamis).
- Kolom dalam tabel Stretch Database. (Tabel dengan kolom yang dienkripsi dengan Always Encrypted dapat diaktifkan untuk Stretch.)
- Kolom dalam tabel eksternal (PolyBase) (catatan: menggunakan tabel dan tabel eksternal dengan kolom terenkripsi dalam kueri yang sama didukung).
- Parameter bernilai tabel yang menargetkan kolom terenkripsi tidak didukung.
Klausa berikut tidak dapat digunakan untuk kolom terenkripsi:
FOR XMLFOR JSON PATH
Fitur berikut ini tidak berfungsi pada kolom terenkripsi:
- Transaksional, penggabungan, atau replikasi rekam jepret
- Kueri terdistribusi (server tertaut,
OPENROWSET(T-SQL),OPENDATASOURCE(T-SQL))
Persyaratan Alat
- SQL Server Management Studio versi 18 atau lebih tinggi disarankan untuk menjalankan kueri yang mendekripsi hasil yang diambil dari kolom terenkripsi atau menyisipkan, memperbarui, atau memfilter kolom terenkripsi.
sqlcmdMemerlukan versi 13.1 atau yang lebih tinggi, yang tersedia dari Pusat Unduhan.
Izin Database
Ada empat izin untuk Always Encrypted:
ALTER ANY COLUMN MASTER KEY(Diperlukan untuk membuat dan menghapus kunci master kolom.)ALTER ANY COLUMN ENCRYPTION KEY(Diperlukan untuk membuat dan menghapus kunci enkripsi kolom.)VIEW ANY COLUMN MASTER KEY DEFINITION(Diperlukan untuk mengakses dan membaca metadata kunci master kolom untuk mengelola kunci atau mengkueri kolom terenkripsi.)VIEW ANY COLUMN ENCRYPTION KEY DEFINITION(Diperlukan untuk mengakses dan membaca metadata kunci enkripsi kolom untuk mengelola kunci atau mengkueri kolom terenkripsi.)
Tabel berikut ini meringkas izin yang diperlukan untuk tindakan umum.
| Skenario | ALTER ANY COLUMN MASTER KEY |
ALTER ANY COLUMN ENCRYPTION KEY |
VIEW ANY COLUMN MASTER KEY DEFINITION |
VIEW ANY COLUMN ENCRYPTION KEY DEFINITION |
|---|---|---|---|---|
| Manajemen kunci (membuat/mengubah/meninjau metadata kunci dalam database) | X | X | X | X |
| Mengkueri kolom terenkripsi | X | X |
Catatan penting:
Izin berlaku untuk tindakan menggunakan Transact-SQL, Management Studio (kotak dialog dan wizard), atau PowerShell.
Dua izin VIEW diperlukan saat memilih kolom terenkripsi, meskipun pengguna tidak memiliki izin untuk mendekripsi kolom.
Dalam SQL Server, kedua izin VIEW diberikan secara default ke
publicperan database tetap. Administrator database dapat memilih untuk mencabut (atau menolak) izin VIEW kepublicperan dan memberi mereka peran atau pengguna tertentu untuk menerapkan kontrol yang lebih terbatas.Dalam SQL Database, izin VIEW tidak diberikan secara default ke
publicperan database tetap. Ini memungkinkan alat warisan tertentu yang ada (menggunakan versi DacFx yang lebih lama) berfungsi dengan baik. Akibatnya, untuk bekerja dengan kolom terenkripsi (bahkan jika tidak mendekripsinya) administrator database harus secara eksplisit memberikan dua izin VIEW .
Contoh
Transact-SQL berikut membuat metadata kunci master kolom, metadata kunci enkripsi kolom, dan tabel dengan kolom terenkripsi. Untuk informasi cara membuat kunci, yang dirujuk dalam metadata, lihat:
- Mengonfigurasi Always Encrypted menggunakan SSMS
- Mengonfigurasi Always Encrypted menggunakan PowerShell
CREATE COLUMN MASTER KEY MyCMK
WITH (
KEY_STORE_PROVIDER_NAME = 'MSSQL_CERTIFICATE_STORE',
KEY_PATH = 'Current User/Personal/f2260f28d909d21c642a3d8e0b45a830e79a1420'
);
---------------------------------------------
CREATE COLUMN ENCRYPTION KEY MyCEK
WITH VALUES
(
COLUMN_MASTER_KEY = MyCMK,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x01700000016C006F00630061006C006D0061006300680069006E0065002F006D0079002F003200660061006600640038003100320031003400340034006500620031006100320065003000360039003300340038006100350064003400300032003300380065006600620063006300610031006300284FC4316518CF3328A6D9304F65DD2CE387B79D95D077B4156E9ED8683FC0E09FA848275C685373228762B02DF2522AFF6D661782607B4A2275F2F922A5324B392C9D498E4ECFC61B79F0553EE8FB2E5A8635C4DBC0224D5A7F1B136C182DCDE32A00451F1A7AC6B4492067FD0FAC7D3D6F4AB7FC0E86614455DBB2AB37013E0A5B8B5089B180CA36D8B06CDB15E95A7D06E25AACB645D42C85B0B7EA2962BD3080B9A7CDB805C6279FE7DD6941E7EA4C2139E0D4101D8D7891076E70D433A214E82D9030CF1F40C503103075DEEB3D64537D15D244F503C2750CF940B71967F51095BFA51A85D2F764C78704CAB6F015EA87753355367C5C9F66E465C0C66BADEDFDF76FB7E5C21A0D89A2FCCA8595471F8918B1387E055FA0B816E74201CD5C50129D29C015895CD073925B6EA87CAF4A4FAF018C06A3856F5DFB724F42807543F777D82B809232B465D983E6F19DFB572BEA7B61C50154605452A891190FB5A0C4E464862CF5EFAD5E7D91F7D65AA1A78F688E69A1EB098AB42E95C674E234173CD7E0925541AD5AE7CED9A3D12FDFE6EB8EA4F8AAD2629D4F5A18BA3DDCC9CF7F352A892D4BEBDC4A1303F9C683DACD51A237E34B045EBE579A381E26B40DCFBF49EFFA6F65D17F37C6DBA54AA99A65D5573D4EB5BA038E024910A4D36B79A1D4E3C70349DADFF08FD8B4DEE77FDB57F01CB276ED5E676F1EC973154F86
);
---------------------------------------------
CREATE TABLE Customers (
CustName nvarchar(60)
COLLATE Latin1_General_BIN2 ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = MyCEK,
ENCRYPTION_TYPE = RANDOMIZED,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'),
SSN varchar(11)
COLLATE Latin1_General_BIN2 ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = MyCEK,
ENCRYPTION_TYPE = DETERMINISTIC ,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'),
Age int NULL
);
GO
Lihat juga
- Mengonfigurasi Always Encrypted menggunakan SSMS
- Mengonfigurasi Always Encrypted menggunakan PowerShell
- Mengembangkan aplikasi menggunakan Always Encrypted
- Mengonfigurasi enkripsi kolom menggunakan wizard Always Encrypted
- Always Encrypted kriptografi
- CREATE COLUMN MASTER KEY (Transact-SQL)
- CREATE COLUMN ENCRYPTION KEY (Transact-SQL)
- BUAT TABEL (Transact-SQL)
- column_definition (SQL Bertransaksi)
- sys.column_encryption_keys (SQL Bertransaksi)
- sys.column_encryption_key_values (SQL Bertransaksi)
- sys.column_master_keys (SQL Bertransaksi)
- sys.columns (Transact-SQL)
- sp_refresh_parameter_encryption (SQL Bertransaksi)