Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara membuat database multi-penyewa dengan struktur tabel bersama?

Namun tentu saja ada beberapa perusahaan yang takut data mereka mungkin disusupi, jadi kami sedang mengevaluasi solusi lain.

Ini sangat disayangkan, karena pelanggan terkadang mengalami kesalahpahaman bahwa hanya isolasi fisik yang dapat memberikan keamanan yang cukup.

Ada artikel MSDN yang menarik, berjudul Arsitektur Data Multi-Tenant , yang mungkin ingin Anda periksa. Beginilah cara penulis mengatasi kesalahpahaman terhadap pendekatan bersama:

Kesalahpahaman umum menyatakan bahwa hanya isolasi fisik yang dapat memberikan tingkat keamanan yang sesuai. Faktanya, data yang disimpan menggunakan pendekatan bersama juga dapat memberikan keamanan data yang kuat, tetapi memerlukan penggunaan pola desain yang lebih canggih.

Adapun pertimbangan teknis dan bisnis, artikel ini membuat analisis singkat tentang di mana pendekatan tertentu mungkin lebih tepat daripada yang lain:

Jumlah, sifat, dan kebutuhan penyewa yang Anda harapkan untuk dilayani semuanya memengaruhi keputusan arsitektur data Anda dengan cara yang berbeda. Beberapa pertanyaan berikut mungkin membuat Anda condong ke pendekatan yang lebih terisolasi, sementara yang lain mungkin membuat Anda condong ke pendekatan yang lebih bersama.

  • Berapa banyak calon penyewa yang Anda harapkan untuk ditargetkan? Anda mungkin tidak dapat memperkirakan penggunaan prospektif dengan otoritas, tetapi pikirkan dalam urutan besarnya:apakah Anda membuat aplikasi untuk ratusan penyewa? Ribuan? Puluhan ribu? Lagi? Semakin besar basis penyewa yang Anda harapkan, semakin besar kemungkinan Anda ingin mempertimbangkan pendekatan yang lebih bersama.

  • Berapa banyak ruang penyimpanan yang Anda harapkan untuk ditempati oleh data penyewa rata-rata? Jika Anda mengharapkan beberapa atau semua penyewa untuk menyimpan data dalam jumlah yang sangat besar, pendekatan basis data terpisah ini mungkin yang terbaik. (Memang, persyaratan penyimpanan data mungkin memaksa Anda untuk mengadopsi model basis data terpisah. Jika demikian, akan jauh lebih mudah untuk merancang aplikasi seperti itu dari awal daripada beralih ke pendekatan basis data terpisah nanti.)

  • Berapa banyak pengguna akhir serentak yang Anda harapkan untuk didukung oleh penyewa rata-rata? Semakin besar jumlahnya, semakin tepat pendekatan yang lebih terisolasi untuk memenuhi persyaratan pengguna akhir.

  • Apakah Anda berharap untuk menawarkan layanan nilai tambah per penyewa, seperti kemampuan pencadangan dan pemulihan per penyewa? Layanan seperti itu lebih mudah ditawarkan melalui pendekatan yang lebih terisolasi.

PERBARUI: Lebih lanjut untuk memperbarui tentang jumlah penyewa yang diharapkan.

Jumlah penyewa yang diharapkan (10k) harus mengecualikan pendekatan multi-basis data, untuk sebagian besar, jika tidak semua skenario. Saya rasa Anda tidak akan menyukai gagasan untuk memelihara 10.000 instance database, dan harus membuat ratusan instance baru setiap hari.

Dari parameter itu saja, sepertinya pendekatan shared-database, single-schema adalah yang paling cocok. Fakta bahwa Anda hanya akan menyimpan sekitar 50 MB per penyewa, dan tidak akan ada pengaya per penyewa, membuat pendekatan ini semakin tepat.

Artikel MSDN yang dikutip di atas menyebutkan tiga pola keamanan yang menangani pertimbangan keamanan untuk pendekatan basis data bersama:

Jika Anda yakin dengan tindakan keamanan data aplikasi Anda, Anda akan dapat menawarkan kepada klien Anda Perjanjian Tingkat Layanan yang memberikan jaminan keamanan data yang kuat. Di SLA Anda, selain dari jaminan, Anda juga dapat menjelaskan tindakan yang akan Anda ambil untuk memastikan bahwa data tidak disusupi.

PEMBARUAN 2: Rupanya orang-orang Microsoft pindah / membuat artikel baru tentang hal ini, tautan aslinya hilang dan ini yang baru:Pola sewa database SaaS multi-penyewa (pujian untuk Shai Kerer)



  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 cara menguji apakah suatu string adalah JSON atau bukan?

  2. Bagaimana cara memilih baris yang memiliki stempel waktu hari ini?

  3. Kesalahan fatal:[] operator tidak didukung untuk string

  4. Memahami Tampilan dalam SQL

  5. SQL SERVER 2016 – Membandingkan Rencana Eksekusi