Migrasi data ke atau dari kolom menggunakan Always Encrypted with SQL Server Import and Export Wizard

Berlaku untuk: SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SQL Server Import and Export Wizard adalah alat yang memungkinkan Anda menyalin data dari sumber ke tujuan. Artikel ini menjelaskan cara menggunakan SQL Server Import and Export Wizard ketika sumber, tujuan, atau keduanya adalah database SQL Server yang berisi kolom yang dilindungi dengan Always Encrypted.

Skenario migrasi

Dengan Wizard Impor dan Ekspor SQL Server, Anda bisa menerapkan skenario berikut untuk memigrasikan data ke atau dari kolom terenkripsi.

Mengenkripsi data teks biasa pada migrasi

Jika sumber data Anda berisi data teks asli dan tujuan Anda adalah database SQL Server yang berisi kolom terenkripsi, Anda dapat menggunakan SQL Server Import and Export Wizard untuk mengambil data teks asli dari sumber, mengenkripsinya, dan menyalin data terenkripsi (ciphertext) ke kolom terenkripsi di database tujuan. Untuk skenario migrasi ini, sumber data dapat berupa penyimpanan data apa pun yang didukung oleh SQL Server Import and Export Wizard, seperti file, database SQL Server, atau database di sistem database lain.

Untuk memastikan SQL Server Import and Export Wizard dapat mengenkripsi data, aktifkan Always Encrypted untuk koneksi database tujuan, dan pastikan Anda memiliki akses ke kunci yang melindungi data di kolom database tujuan. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan Always Encrypted untuk koneksi database dan Izin untuk mengenkripsi atau mendekripsi data selama migrasi.

Mendekripsi data terenkripsi pada migrasi

Jika Anda memigrasikan data yang disimpan dalam kolom basis data terenkripsi di basis data SQL Server, Anda dapat mengonfigurasi SQL Server Import and Export Wizard untuk mendekripsi data dan menyalin data yang telah didekripsi (teks asli) ke tujuan. Tujuan dapat berupa penyimpanan data apa pun yang didukung oleh SQL Server Import and Export Wizard, seperti file, database SQL Server, atau database di sistem database lain.

Untuk memastikan SQL Server Import and Export Wizard dapat mendekripsi data, aktifkan Always Encrypted untuk koneksi database sumber, dan pastikan Anda memiliki akses ke kunci yang melindungi data di kolom database sumber. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan Always Encrypted untuk koneksi database dan Izin untuk mengenkripsi atau mendekripsi data selama migrasi.

Mengenkripsi ulang data pada migrasi

Jika Anda menyalin data dari kolom terenkripsi di database SQL Server sumber ke kolom terenkripsi di database SQL Server yang sama atau lainnya, Anda dapat mengonfigurasi SQL Server Import and Export Wizard untuk mendekripsi data setelah mengambilnya dari sumber, dan mengenkripsi ulang sebelum memasukkannya ke kolom terenkripsi di database tujuan. Gunakan metode ini jika skema kolom target, seperti tipe data kolom, tipe enkripsi, dan kunci enkripsi kolom, berbeda dari skema kolom sumber.

Untuk memastikan SQL Server Import and Export Wizard dapat mengenkripsi dan mendekripsi data, aktifkan Always Encrypted untuk koneksi database sumber dan koneksi database tujuan, serta pastikan Anda memiliki akses ke kunci yang melindungi data di kedua kolom database sumber dan target. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan Always Encrypted untuk koneksi database dan Izin untuk mengenkripsi atau mendekripsi data selama migrasi.

Menjaga data tetap terenkripsi selama migrasi

Jika Anda menyalin data dari kolom terenkripsi di database SQL Server sumber ke kolom terenkripsi di database SQL Server yang sama atau lainnya, dan kolom target menggunakan skema yang persis sama dengan kolom sumber, termasuk tipe data, tipe enkripsi, dan kunci enkripsi kolom yang sama, Anda dapat mengonfigurasi SQL Server Import and Export Wizard untuk mengambil ciphertext dari kolom sumber dan memasukkan data terenkripsi (ciphertext) ke kolom terenkripsi di database SQL Server target.

Untuk skenario ini, gunakan penyedia data apa pun yang mendukung SQL Server untuk terhubung ke database sumber atau tujuan SQL Server. Jika Anda menggunakan penyedia yang mendukung Always Encrypted untuk terhubung ke database tujuan, pastikan Always Encrypted dinonaktifkan untuk koneksi database. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan Always Encrypted untuk koneksi database.

Anda juga perlu memastikan database principal (pengguna) yang digunakan SQL Server Import and Export Wizard untuk terhubung ke database tujuan dikonfigurasi dengan ALLOW_ENCRYPTED_VALUE_MODIFICATIONS opsi yang diatur ke ON. Opsi ini menonaktifkan pemeriksaan metadata kriptografi pada server dalam operasi salinan massal, yang memungkinkan wizard memasukkan data terenkripsi secara massal ke database tujuan tanpa mendekripsinya. Untuk informasi lebih lanjut, lihat Muat data terenkripsi secara massal ke kolom yang dilindungi oleh Always Encrypted.

Mengaktifkan dan menonaktifkan Always Encrypted untuk koneksi database

Jika skenario migrasi Anda memerlukan SQL Server Import and Export Wizard untuk mengenkripsi atau mendekripsi data, konfigurasikan koneksi database sumber SQL Server, koneksi database SQL Server tujuan, atau keduanya, dengan menggunakan penyedia data yang mendukung Always Encrypted. Anda juga perlu mengaktifkan Always Encrypted untuk koneksi tersebut.

Gunakan penyedia data mana pun untuk koneksi jika Anda tidak memerlukan wizard untuk mengenkripsi atau mendekripsi data pada koneksi tersebut.

Penyedia data berikut di Wizard Impor dan Ekspor SQL Server mendukung Always Encrypted.

Izin untuk mengenkripsi atau mendekripsi data selama migrasi

Untuk mengenkripsi atau mendekripsi data yang disimpan di database sumber atau tujuan SQL Server, Anda memerlukan izin VIEW ANY COLUMN MASTER KEY DEFINITION dan VIEW ANY COLUMN ENCRYPTION KEY DEFINITION di database sumber. Anda juga memerlukan izin penyimpanan kunci untuk mengakses dan menggunakan kunci master kolom Anda. Untuk informasi rinci tentang izin penyimpanan kunci yang diperlukan untuk operasi manajemen kunci, lihat Buat dan simpan kunci master kolom untuk Always Encrypted dan temukan bagian yang relevan dengan penyimpanan kunci Anda.