Mengonfigurasi enkripsi kolom menggunakan Always Encrypted dengan paket DAC

Berlaku untuk: SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Paket aplikasi tingkat data (DAC), juga dikenal sebagai DACPAC, adalah unit portabel penyebaran database SQL Server yang menentukan semua objek SQL Server, termasuk tabel dan kolom di dalam tabel. Saat Anda menerbitkan DACPAC ke database (saat Anda meningkatkan database menggunakan DACPAC), skema database target diperbarui agar sesuai dengan skema di DACPAC. Anda dapat menerbitkan DACPAC menggunakan Panduan Peningkatan Aplikasi Lapisan Data di SQL Server Management Studio, PowerShell, atau sqlpackage.

Artikel ini membahas pertimbangan khusus untuk meningkatkan database saat DACPAC atau database target berisi kolom yang dilindungi dengan Always Encrypted. Jika skema enkripsi untuk kolom di DACPAC berbeda dari skema enkripsi untuk kolom yang ada di database target, menerbitkan DACPAC menghasilkan enkripsi, dekripsi, atau mengenkripsi ulang data yang disimpan di kolom. Lihat tabel di bawah ini untuk detailnya.

Kondisi Perbuatan
Kolom dienkripsi di DACPAC dan tidak dienkripsi dalam database. Data dalam kolom akan dienkripsi.
Kolom tersebut tidak dienkripsi di DACPAC, tetapi dienkripsi di database. Data dalam kolom akan didekripsi (enkripsi akan dihapus untuk kolom).
Kolom dienkripsi baik di DACPAC maupun database, tetapi kolom di DACPAC menggunakan jenis enkripsi yang berbeda atau kunci enkripsi kolom yang berbeda dari kolom yang sesuai dalam database. Data dalam kolom akan didekripsi dan kemudian dienkripsi ulang agar sesuai dengan konfigurasi enkripsi di DACPAC.

Menyebarkan paket DAC juga dapat mengakibatkan pembuatan atau penghapusan objek metadata untuk kunci master kolom atau kunci enkripsi kolom untuk Always Encrypted.

Pertimbangan performa

Untuk melakukan operasi kriptografi, alat yang Anda gunakan untuk menyebarkan DACPAC perlu memindahkan data keluar dari database. Alat ini membuat tabel baru (atau tabel) dengan konfigurasi enkripsi yang diinginkan dalam database, memuat semua data dari tabel asli, melakukan operasi kriptografi yang diminta, mengunggah data ke tabel baru, lalu menukar tabel asli dengan tabel baru. Menjalankan operasi kriptografi dapat memakan waktu lama. Selama waktu itu, database Anda tidak tersedia untuk menulis transaksi.

Catatan

Jika Anda menggunakan SQL Server 2019 (15.x) dan instans SQL Server Anda dikonfigurasi dengan enklave aman, Anda dapat menjalankan operasi kriptografi di tempat, tanpa memindahkan data dari database. Lihat Mengonfigurasi enkripsi kolom secara langsung menggunakan Always Encrypted dengan enklave aman. Enkripsi di tempat tidak tersedia untuk penyebaran DACPAC.

Izin untuk menerbitkan paket DAC jika Always Encrypted dikonfigurasi

Untuk menerbitkan paket DAC jika Always Encrypted disiapkan di DACPAC atau di database target, Anda mungkin memerlukan beberapa atau semua izin di bawah ini, tergantung pada perbedaan antara skema dalam DACPAC dan skema database target.

UBAH APA PUN COLUMN MASTER KEY, UBAH DEFINISI APA PUNCOLUMN ENCRYPTION KEY, VIEW DEFINISI APA PUNCOLUMN MASTER KEY, VIEW DEFINISI APA PUN COLUMN ENCRYPTION KEY

Jika operasi peningkatan memicu operasi enkripsi data, Anda juga memerlukan izin penyimpanan kunci untuk mengakses dan menggunakan kunci master kolom Anda. Untuk informasi terperinci tentang izin penyimpanan kunci, buka Membuat dan menyimpan kunci master kolom untuk Always Encrypted dan temukan bagian yang relevan untuk penyimpanan kunci Anda.