多租戶

摘抄自 https://www.cnblogs.com/shuaiandjun/p/10306460.htmlhtml

 

什麼是多租戶數據庫

  多租戶技術或稱多重租賃技術,簡稱 SaaS(Software as a service),是一種軟件架構技術,是實現如何在多用戶環境下共用相同的系統或程序組件,而且可確保各用戶間數據的隔離性。安全

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

 

數據隔離方案架構

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

 

獨立數據庫htm

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

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

 

共享數據庫,獨立 Schema開發

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

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

 

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

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

  簡單說,就是每插入一條數據時都須要有一個客戶的標識。這樣才能在同一張表中區分出不一樣的客戶數據。

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