Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Enkripsi Cadangan Basis Data SQL Server

Untuk mengelola keamanan data yang telah dibackup oleh sistem file sebagai file backup database, SQL Server menyediakan fitur enkripsi backup. Pada artikel ini, kita akan berbicara tentang opsi enkripsi yang tersedia di SQL Server untuk backup database. Kami akan melihat lebih dekat detail penggunaan, manfaat, dan praktik yang disarankan untuk mengenkripsi cadangan database SQL Server selama proses pencadangan.

Apa itu enkripsi cadangan basis data?

Kebutuhan untuk menjaga keamanan data tumbuh secara dramatis. Seiring dengan data, Anda perlu memastikan file cadangan database Anda juga diamankan, terutama yang ada di sistem file server. Data di dalam file cadangan SQL Server asli disimpan sebagai teks biasa pada sistem file. Anda dapat membacanya dengan mudah menggunakan editor teks.
Tergantung pada tipe data yang digunakan dalam tabel Anda, beberapa data lebih mudah dibaca daripada yang lain. Gambar berikut menunjukkan file cadangan yang dibuka di editor teks Notepad:

Seperti yang Anda lihat, kode T-SQL terlihat dan mudah dibaca. Namun, setelah kami membuat cadangan dengan enkripsi, tidak seorang pun akan memiliki kesempatan untuk mengetahuinya.

Gambar berikut menunjukkan AdventureWorks2014.bak yang sama dengan enkripsi.

Dimulai dengan SQL Server 2014, mesin database dapat mengenkripsi data saat membuat file cadangan. Anda dapat menentukan algoritme enkripsi dan encryptor, baik Sertifikat atau Kunci Asimetris, saat membuat cadangan. Fitur enkripsi cadangan meningkatkan keamanan dan berfungsi di domain mana pun di mana SQL Server itu sendiri dapat digunakan.

Apa yang dibutuhkan?

Untuk mengenkripsi cadangan database, Anda perlu menentukan algoritma enkripsi dan encryptor. Ada dua opsi enkripsi yang didukung:

  • Algoritme enkripsi:AES_128, AES_192, AES_256, dan Triple_DES_3Key
  • Encryptor:Sertifikat atau kunci asimetris

Jika Anda secara tidak sengaja kehilangan sertifikat atau kunci asimetris, Anda tidak akan pernah memiliki kesempatan untuk memulihkan file cadangan. Oleh karena itu, sangat penting untuk menyimpan sertifikat atau kunci asimetris di lokasi yang aman.

Manfaat enkripsi cadangan basis data

  • Membantu mengamankan data.
  • Dapat diterapkan ke database yang dienkripsi dengan bantuan Enkripsi Data Transparan (TDE).
  • Didukung untuk pencadangan yang dibuat oleh SQL Server, pencadangan terkelola ke Microsoft Azure yang menyediakan keamanan tambahan untuk pencadangan di luar situs.
  • Mendukung berbagai algoritma enkripsi hingga AES 256 bit. Ini memungkinkan Anda memilih algoritme yang memenuhi kebutuhan Anda.
  • Dapat mengintegrasikan kunci enkripsi dengan penyedia Extended Key Management (EKM).

Perubahan pada tabel sistem

Saat membuat cadangan terenkripsi, beberapa informasi dicatat ke dalam MSDB basis data sistem:algoritme kunci, jenis enkripsi, dan sidik jari enkripsi yang digunakan.
Cadangan tabel berisi informasi untuk setiap set cadangan. Kumpulan cadangan berisi cadangan untuk satu operasi pencadangan yang berhasil.
Kolom berikut:key_algorithm , encryptor_thumprint , encryptor_type DMV ini menyimpan informasi tentang apakah cadangan dienkripsi, jenis penyandi, dan sidik jari penyandi.

PILIH TOP 5 nama, key_algorithm, encryptor_thumbprint, encryptor_typeFROM msdb.dbo.backupset AS backupset dengan (NOLOCK)WHERE type IN ('D', 'I') AND database_name ='AdventureWorks2014'ORDER BY backupset.backup_start_date DESCGO 

Inilah yang akan Anda lihat:

Untuk mendapatkan informasi lebih lanjut tentang tabel backupset, baca halaman dokumentasi MSDN berikut:backupset (Transact-SQL)

set media cadangan tabel berisi informasi untuk setiap set media cadangan. Kolom is_encrypted menunjukkan apakah cadangan dienkripsi atau tidak. 0 – tidak terenkripsi dan 1 – terenkripsi. Awalnya, nilai ini disetel ke NULL yang menunjukkan mediaset cadangan yang tidak terenkripsi.

PILIH TOP 5 media_set_id, is_encrypted, is_compressedFROM msdb.dbo.backupmediaset SEBAGAI mediaset dengan (NOLOCK)ORDER BY mediaset.media_set_id DESCGO

Kumpulan hasil:

Metode enkripsi cadangan basis data

1. Dengan bantuan dbForge Studio untuk SQL Server

Dimungkinkan untuk membuat enkripsi cadangan basis data dengan bantuan SSMS, tetapi saya pribadi lebih sukabForge Studio untuk SQL Server — IDE yang kuat untuk manajemen, administrasi, pengembangan, pelaporan data, dan analisis SQL Server. IDE ini seperti pisau Swiss untuk pengembang basis data. Alat ini menyediakan fitur-fitur penting yang terbungkus dalam GUI yang dirancang dengan baik dan intuitif. Untuk mengenal fitur-fitur utama, lihat dbForge Studio untuk SQL Server – Video pengantar Ikhtisar (menit 04:03):

Setelah Anda mengunduh dan menginstal alat, Anda perlu membuat koneksi database.

Perhatikan bahwa fitur enkripsi cadangan diperkenalkan di SQL Server 2014. SQL Server Express tidak mendukung enkripsi selama pencadangan.

1. Setelah Anda terhubung ke instance SQL Server yang diperlukan, di Database Explorer , klik nama server untuk memperluas struktur server.

2. Klik kanan database yang diperlukan, arahkan ke Tugas, lalu klik Cadangkan . Kotak dialog Cadangkan Database muncul.

Di Sambungan kotak daftar, centang nama koneksi. Anda dapat memilih koneksi yang berbeda dari daftar.

3. Klik Berikutnya, untuk melanjutkan dengan Opsi Media .

Opsi enkripsi dinonaktifkan jika Anda memilih untuk menambahkan opsi kumpulan cadangan yang ada pada halaman Opsi Media dari wizard Database Cadangan. Pilih cadangan ke kumpulan media baru, dan hapus semua kumpulan cadangan yang ada.
Buat sertifikat/kunci sebelum memulai proses. Sertifikat atau kunci asimetris yang dibuat sebelum memulai wizard database pencadangan akan dicantumkan di drop-down.

Pilih Cadangkan ke kumpulan media baru, dan hapus semua kumpulan cadangan yang ada pilihan untuk membuat cadangan baru. Masukkan nama di Nama kumpulan media kotak teks, dan, secara opsional, jelaskan kumpulan media di Deskripsi kumpulan media kotak teks.

4. Klik Berikutnya, untuk melanjutkan dengan Opsi Cadangan .

Di halaman ini, pilih opsi Enkripsi Cadangan. Pilih Algorithm dan Certificate atau Asymmetric key. Klik Cadangkan . Prosesnya memakan waktu beberapa detik dalam kasus saya.

2. Menggunakan pernyataan Transact-SQL

Kami akan menggunakan BACKUP DATABASE pernyataan untuk membuat cadangan basis data dan LOG CADANGAN untuk membuat file cadangan log transaksi.

Cadangan basis data lengkap

Jenis cadangan ini mencadangkan seluruh basis data. Ini termasuk bagian dari log transaksi sehingga database lengkap dapat dipulihkan setelah cadangan database lengkap dipulihkan.

Kode berikut membuat database Lengkap terenkripsi backup di lokasi yang disediakan menggunakan sertifikat dan algoritma enkripsi yang ditentukan.

BACKUP DATABASE AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014.bak'DENGAN NAMA =N'AdventureWorks2014, Compressed, Encrypted, Full', FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS =5, COMPRESSION, ENKRIPSI( ALGORITMA =AES_256, SERVER CERTIFICATE =Cert1)GO

Catatan, Jika sertifikat yang digunakan untuk enkripsi belum pernah dicadangkan, peringatan berikut akan muncul saat pencadangan selesai. Pastikan Anda mengambil cadangan sertifikat bersama dengan kunci pribadi yang terkait dengan sertifikat:

Peringatan :Sertifikat yang digunakan untuk mengenkripsi kunci enkripsi basis data belum dicadangkan. Anda harus segera mencadangkan sertifikat dan kunci pribadi yang terkait dengan sertifikat. Jika sertifikat menjadi tidak tersedia atau jika Anda harus memulihkan atau melampirkan database di server lain, Anda harus memiliki cadangan sertifikat dan kunci pribadi atau Anda tidak akan dapat membuka database.

Cadangan basis data diferensial

Saat membuat jenis cadangan ini, basis data atau cadangan file hanya terdiri dari bagian basis data atau file yang diubah sejak pencadangan penuh terakhir. Selain itu, jenis pencadangan ini biasanya menggunakan lebih sedikit ruang daripada cadangan penuh.

Kode berikut membuat basis data diferensial terenkripsi backup di lokasi yang disediakan menggunakan sertifikat dan algoritma enkripsi yang ditentukan.

BACKUP DATABASE AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak'DENGAN NAMA =N'AdventureWorks2014, Compressed, Encrypted, Differential', FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS, =5, COMPRESSION DIFERENSIAL,ENKRIPSI( ALGORITMA =AES_256, SERVER CERTIFICATE =Cert1)GO

Cadangan log transaksi basis data

Database SQL Server berisi satu atau lebih file log transaksi, selain file data, yang mencatat semua transaksi dan modifikasi database yang dibuat oleh setiap transaksi. Informasi transaksi dikumpulkan hanya dalam basis data di mana mode pemulihan basis data disetel ke penuh pemulihan atau dicatat secara massal pemulihan.

Kode berikut membuat log transaksi basis data terenkripsi backup di lokasi yang disediakan menggunakan sertifikat dan algoritma enkripsi yang ditentukan.

LOG CADANGAN AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_LOG.bak'DENGAN NAMA =N'AdventureWorks2014, Compressed, Encrypted, TLog', FORMAT, INIT, SKIP, STATS =5, COMPRESSION, ENCRYPTION =ALGORITHM(ALGORITHM) AES_256, SERVER CERTIFICATE =Cert1)GO

3. Menggunakan PowerShell

SQL Server 2014 memungkinkan Anda untuk membuat cadangan database menggunakan Windows Powershell. Kode berikut membuat opsi enkripsi dan menggunakannya sebagai nilai parameter di commandlet Backup-SqlDatabase:

$encryptionOption=New-SqlBackupEncryptionOption –Algorithm Aes256 –EncryptorType ServerCertificate –EncryptorName “Cert1”Backup-SqlDatabase –ServerInstance Server_name –Database “AdventureWorks2014” –BackupFile “D:\DBMSAdventureOptionbakup_2014_SQLFFX64\Backup” $encryptionOption

Membandingkan pendekatan yang disebutkan di atas, tidak diragukan lagi bahwa membuat cadangan database terenkripsi adalah tugas yang cukup mudah bila Anda memiliki alat yang tepat, seperti dbForge Studio untuk SQL Server dari Devart.

Bacaan tambahan

Teman saya, Pinal Dave – penggemar teknologi SQL Server, konsultan independen, penulis berbagai buku SQL Server, dan kursus Pluralsight, menulis artikel yang sangat bagus, yang saya sarankan untuk Anda baca lebih lanjut:SQL SERVER – Penggunaan Enkripsi Cadangan yang Praktis


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Metrik Kinerja SQL Server untuk Tetap Terdepan dalam Game

  2. UNION hasil dari beberapa prosedur tersimpan

  3. Apa alat terbaik untuk membandingkan dua database SQL Server (skema dan data)?

  4. Sintaks salah di dekat ''

  5. Cara Bergabung ke baris pertama