什麼是多租戶

文章轉自https://www.jb51.net/article/151723.htm數據庫

什麼是多租戶安全

多租戶技術或稱多重租賃技術,簡稱SaaS,是一種軟件架構技術,是實現如何在多用戶環境下(此處的多用戶通常是面向企業用戶)共用相同的系統或程序組件,而且可確保各用戶間數據的隔離性。服務器

簡單講:在一臺服務器上運行單個應用實例,它爲多個租戶(客戶)提供服務。從定義中咱們能夠理解:多租戶是一種架構,目的是爲了讓多用戶環境下使用同一套程序,且保證用戶間數據隔離。那麼重點就很淺顯易懂了,多租戶的重點就是同一套程序下實現多用戶數據的隔離。架構

數據隔離方案ide

多租戶在數據存儲上存在三種主要的方案,分別是:.net

獨立數據庫設計

即一個租戶一個數據庫,這種方案的用戶數據隔離級別最高,安全性最好,但成本較高。code

  • 優勢:爲不一樣的租戶提供獨立的數據庫,有助於簡化數據模型的擴展設計,知足不一樣租戶的獨特需求;若是出現故障,恢復數據比較簡單。
  • 缺點:增多了數據庫的安裝數量,隨之帶來維護成本和購置成本的增長。

共享數據庫,獨立 Schemahtm

多個或全部租戶共享Database,可是每一個租戶一個Schema(也可叫作一個user)。底層庫好比是:DB二、ORACLE等,一個數據庫下能夠有多個SCHEMA。開發

  • 優勢:爲安全性要求較高的租戶提供了必定程度的邏輯數據隔離,並非徹底隔離;每一個數據庫可支持更多的租戶數量。
  • 缺點:若是出現故障,數據恢復比較困難,由於恢復數據庫將牽涉到其餘租戶的數據;

共享數據庫,共享 Schema,共享數據表

即租戶共享同一個Database、同一個Schema,但在表中增長TenantID多租戶的數據字段。這是共享程度最高、隔離級別最低的模式。

簡單來說,即每插入一條數據時都須要有一個客戶的標識。這樣才能在同一張表中區分出不一樣客戶的數據,這也是咱們系統目前用到的(provider_id)

  1. 優勢:三種方案比較,第三種方案的維護和購置成本最低,容許每一個數據庫支持的租戶數量最多。
  2. 缺點:隔離級別最低,安全性最低,須要在設計開發時加大對安全的開發量; 數據備份和恢復最困難,須要逐表逐條備份和還原。
相關文章
相關標籤/搜索