Namun ada beberapa perusahaan yang khawatir bahwa data mereka dapat dikompromikan, jadi kami mengevaluasi solusi lain.
Ini sangat disayangkan, karena pelanggan terkadang menderita kesalahpahaman bahwa hanya isolasi fisik yang dapat menawarkan keamanan yang cukup.
Ada artikel MSDN yang menarik, berjudul Multi-Tenant Data Architecture , yang mungkin ingin Anda periksa. Inilah cara penulis mengatasi kesalahpahaman terhadap pendekatan bersama:
Kesalahpahaman umum menyatakan bahwa hanya isolasi fisik yang dapat memberikan tingkat keamanan yang sesuai. Bahkan, data yang disimpan menggunakan pendekatan bersama juga dapat memberikan keamanan data yang kuat, tetapi membutuhkan penggunaan pola desain yang lebih canggih.
Adapun pertimbangan teknis dan bisnis, artikel ini membuat analisis singkat di mana pendekatan tertentu mungkin lebih tepat daripada yang lain:
Jumlah, sifat, dan kebutuhan penyewa yang Anda harapkan untuk melayani semua mempengaruhi keputusan arsitektur data Anda dengan cara yang berbeda. Beberapa pertanyaan berikut mungkin bias Anda terhadap pendekatan yang lebih terisolasi, sementara yang lain mungkin bias Anda terhadap pendekatan yang lebih umum.
Berapa calon penyewa yang Anda harapkan untuk ditargetkan? Anda mungkin tidak dapat memperkirakan penggunaan prospektif dengan otoritas, tetapi pikirkan dalam hal urutan besarnya: apakah Anda membangun aplikasi untuk ratusan penyewa? Ribuan? Puluhan ribu? Lebih? Semakin besar Anda mengharapkan basis penyewa Anda, semakin besar kemungkinan Anda ingin mempertimbangkan pendekatan yang lebih umum.
Berapa banyak ruang penyimpanan yang Anda harapkan untuk ditempati oleh data rata-rata penyewa? Jika Anda mengharapkan beberapa atau semua penyewa untuk menyimpan jumlah data yang sangat besar, pendekatan basis data terpisah mungkin yang terbaik. (Memang, persyaratan penyimpanan data mungkin memaksa Anda untuk mengadopsi model database terpisah. Jika demikian, akan lebih mudah untuk merancang aplikasi seperti itu sejak awal daripada pindah ke pendekatan database terpisah nanti.)
Berapa banyak pengguna akhir secara bersamaan yang Anda harapkan dari penyewa rata-rata untuk mendukung? Semakin besar angkanya, semakin tepat pendekatan yang lebih terisolasi untuk memenuhi kebutuhan pengguna akhir.
Apakah Anda berharap untuk menawarkan layanan nilai tambah per penyewa, seperti cadangan per-penyewa dan kemampuan memulihkan? Layanan seperti itu lebih mudah ditawarkan melalui pendekatan yang lebih terisolasi.
UPDATE: Selanjutnya untuk memperbarui tentang jumlah penyewa yang diharapkan.
Jumlah penyewa yang diharapkan (10k) harus mengecualikan pendekatan multi-database, untuk sebagian besar, jika tidak semua skenario. Saya tidak berpikir Anda akan menyukai gagasan mempertahankan 10.000 contoh database, dan harus membuat ratusan yang baru setiap hari.
Dari parameter itu saja, sepertinya shared-database, pendekatan skema tunggal adalah yang paling cocok. Fakta bahwa Anda akan menyimpan hanya sekitar 50MB per penyewa, dan bahwa tidak akan ada tambahan per penyewa, membuat pendekatan ini semakin tepat.
Artikel MSDN yang dikutip di atas menyebutkan tiga pola keamanan yang menangani pertimbangan keamanan untuk pendekatan database bersama:
Ketika Anda yakin dengan langkah-langkah keamanan data aplikasi Anda, Anda akan dapat menawarkan klien Anda Tingkat Layanan yang memberikan jaminan keamanan data yang kuat. Di SLA Anda, selain dari jaminan, Anda juga bisa menggambarkan tindakan yang akan Anda ambil untuk memastikan bahwa data tidak dikompromikan.
UPDATE 2: Rupanya orang-orang Microsoft pindah / membuat artikel baru tentang subjek ini, tautan asli hilang dan ini adalah yang baru: Pola tenancy basis data SaaS database multi-penyewa (pujian untuk Shai Kerer)