多租戶的系統(tǒng)可以應(yīng)用這種模式的思想,將思想融入到系統(tǒng)的設(shè)計之中。
一、多租戶的系統(tǒng),目前在數(shù)據(jù)庫存儲上,一般有三種解決方案:
1.獨立數(shù)據(jù)庫
2.共享數(shù)據(jù)庫,隔離數(shù)據(jù)架構(gòu)
3.共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)
這里我就系統(tǒng)的實際需求情況,選擇了第二種解決方案,下面簡單介紹下
二、數(shù)據(jù)庫我選用的是SqlServer,因為SqlServer自帶的Schema剛好符合這種需求。至于Mysql,Oracle的Schema應(yīng)該是有不同的設(shè)計,不同于SqlServer,這里我就只針對SqlServer而言。
如果你百度SqlServer的Schema方面的知識介紹,會有不少的Schema的語法介紹,但是很少有一套sql腳本針對多租戶設(shè)計的,我在這里做個整理。
1.創(chuàng)建數(shù)據(jù)庫
create database
SingleDbMultipleSchema
go
2.切換到目標(biāo)數(shù)據(jù)庫
use SingleDbMultipleSchema
go
3.創(chuàng)建用戶并綁定登錄名并賦予默認(rèn)schema
create login UserTemp with password = N'admin@123'
create user UserTemp for login UserTemp with default_schema = UserTempSchema
go
4.創(chuàng)建schema并授權(quán)默認(rèn)用戶
create schema UserTempSchema authorization UserTemp
go
5.補充建表權(quán)限(PS:這句sql找的好苦。。。)
grant create table to UserTemp
go