多租戶(hù)的系統(tǒng)可以應(yīng)用這種模式的思想,將思想融入到系統(tǒng)的設(shè)計(jì)之中。

 

一、多租戶(hù)的系統(tǒng),目前在數(shù)據(jù)庫(kù)存儲(chǔ)上,一般有三種解決方案:

1.獨(dú)立數(shù)據(jù)庫(kù)

2.共享數(shù)據(jù)庫(kù),隔離數(shù)據(jù)架構(gòu)

3.共享數(shù)據(jù)庫(kù),共享數(shù)據(jù)架構(gòu)

這里我就系統(tǒng)的實(shí)際需求情況,選擇了第二種解決方案,下面簡(jiǎn)單介紹下

 

二、數(shù)據(jù)庫(kù)我選用的是SqlServer,因?yàn)镾qlServer自帶的Schema剛好符合這種需求。至于Mysql,Oracle的Schema應(yīng)該是有不同的設(shè)計(jì),不同于SqlServer,這里我就只針對(duì)SqlServer而言。

如果你百度SqlServer的Schema方面的知識(shí)介紹,會(huì)有不少的Schema的語(yǔ)法介紹,但是很少有一套sql腳本針對(duì)多租戶(hù)設(shè)計(jì)的,我在這里做個(gè)整理。

1.創(chuàng)建數(shù)據(jù)庫(kù)

create database
SingleDbMultipleSchema
go

 

2.切換到目標(biāo)數(shù)據(jù)庫(kù)

use SingleDbMultipleSchema
go

 

3.創(chuàng)建用戶(hù)并綁定登錄名并賦予默認(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)用戶(hù)

create schema UserTempSchema  authorization UserTemp
go

 

5.補(bǔ)充建表權(quán)限(PS:這句sql找的好苦。。。)

grant create table  to UserTemp
go

 

網(wǎng)友評(píng)論