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

Bagaimana mengontrol pengguna yang dapat mendekripsi Enkripsi Kunci Simetris SQL Server

Anda memiliki dua alternatif:

  1. Kontrol kriptografi. Dengan ini hanya pengguna yang mengetahui kata sandi yang dapat mendekripsi data. Kelemahannya adalah pengguna harus masuk kata sandi dekripsi setiap kali mereka mengakses data. Laporan harus berisi parameter Kata Sandi yang diisi oleh pengguna yang menjalankan laporan dengan kata sandi akses data. Aplikasi harus meminta kata sandi dari pengguna. Situs web harus meminta kata sandi dari pengunjung. Dan seterusnya dan seterusnya

  2. Kontrol akses. Data dienkripsi dengan kunci yang dapat diakses oleh SQL Server itu sendiri (pada akhirnya rantai enkripsi berlanjut hingga Kunci Master Layanan dan ini dienkripsi menggunakan DPAPI). Ini tidak memberi Anda perlindungan yang lebih besar selain yang memberi dan menolak SELECT akan memberi Anda:adalah akses kontrol, bukan kontrol kriptografi. Skema semacam itu hanya melindungi dari kehilangan media yang tidak disengaja (seseorang menemukan disk dengan database Anda, atau Anda kehilangan laptop dengan database di dalamnya). Anda dapat mencapai hal yang sama menggunakan Enkripsi Data Transparan atau enkripsi tingkat file (BitLocker ).

Skenario enkripsi data yang umum adalah mengenkripsi data dengan kunci simetris, dan kemudian mengenkripsi kunci simetris dengan kunci asimetris (biasanya kunci privat dari sebuah sertifikat). Kunci asimetris kemudian dienkripsi dengan kata sandi, dan kata sandi ini harus ditunjukkan saat mencoba mengakses data. Alasan utama untuk tipuan dua tingkat ini adalah perubahan kata sandi:ketika kata sandi atau kunci pribadi disusupi, kunci simetris dienkripsi ulang dengan kunci asimetris yang berbeda atau kunci asimetris dienkripsi ulang dengan kata sandi yang berbeda. Dengan cara ini kata sandi akses telah diubah tanpa memerlukan enkripsi ulang semua data . Jika akses akan diberikan langsung ke kunci simetris, maka kompromi kata sandi mungkin perlu dilakukan untuk mengenkripsi ulang semua data , kemungkinan terabyte data.

Di mana dua skenario yang saya sajikan berbeda adalah apakah kunci asimetris juga dienkripsi dengan kunci master database atau tidak. Kasus 1) tidak, kasus 2) ada. Ini semua dijelaskan di Hierarki Enkripsi .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mencadangkan database SQL Server jarak jauh ke drive lokal?

  2. SQL Server:Operasi terpisah

  3. Bagaimana cara menggunakan nama tabel SQL Server dalam kueri pemilihan dengan variabel?

  4. Dapatkan parameter prosedur tersimpan dengan C# atau SQL?

  5. SQL Dinamis - EXEC(@SQL) versus EXEC SP_EXECUTESQL(@SQL)