Çok kiracılı bir ürün kurarken ilk verilen kararlardan biri veri izolasyonu. Geri dönmesi en pahalı karar da bu.
Ayrı veritabanı
En güçlü izolasyon. Kiracı sayısı düşük ve her biri büyükse mantıklı. Yedekleme ve geri yükleme kiracı bazında yapılabiliyor; kurumsal sözleşmelerde sık istenen bir şey. Bedeli: şema göçleri her kiracı için ayrı çalışıyor.
Ayrı şema
Orta yol. Tek veritabanı, kiracı başına şema. Göçler yine tekrarlanıyor ama tek bağlantı havuzu yetiyor. Elli kiracıya kadar rahat, ötesinde göç süreleri sıkıntı yaratıyor.
Ortak tablo ve satır düzeyinde güvenlik
Her tabloda kiracı kimliği ve veritabanı seviyesinde erişim politikaları. Göç bir kez çalışıyor, operasyon en basit. Risk: bir yerde politikayı unutursanız veri sızıyor.
Son dört projede bunu seçtim. Ama tek başına yeterli değil: her testin bir kiracı sızıntısı kontrolü var ve yeni tablo eklendiğinde politikanın açık olduğunu doğrulayan bir sürekli entegrasyon adımı koyuyorum.
Pişman olduğum yer: bir müşteri sonradan kendi veri yedeğini istedi. Ortak tablodan o kiracının verisini ayıklamak iki günümü aldı.
Sözleşmede veri taşınabilirliği maddesi varsa baştan ayrı şema düşünün.