SaaS模式应用之多租户系统开发(单数据库多Schema设计)

SaaS是Software-as-a-Service(软件即服务)的简称,这边具体的解释不介绍。

多租户的系统可以应用这种模式的思想,将思想融入到系统的设计之中。

一、多租户的系统,目前在数据库存储上,一般有三种解决方案:

1.独立数据库

2.共享数据库,隔离数据架构

3.共享数据库,共享数据架构

这里我就系统的实际需求情况,选择了第二种解决方案,下面简单介绍下

二、数据库我选用的是SqlServer,因为SqlServer自带的Schema刚好符合这种需求。至于Mysql,Oracle的Schema应该是有不同的设计,不同于SqlServer,这里我就只针对SqlServer而言。

如果你百度SqlServer的Schema方面的知识介绍,会有不少的Schema的语法介绍,但是很少有一套sql脚本针对多租户设计的,我在这里做个整理。

1.创建数据库

create database
SingleDbMultipleSchema
go

2.切换到目标数据库

use SingleDbMultipleSchema
go

3.创建用户并绑定登录名并赋予默认schema

create login UserTemp with password = N‘[email protected]‘
create user UserTemp for login UserTemp with default_schema = UserTempSchema
go

4.创建schema并授权默认用户

create schema UserTempSchema  authorization UserTemp
go

5.补充建表权限(PS:这句sql找的好苦。。。)

grant create table  to UserTemp
go

6.给用户分配schema权限(使用到存储过程的权限分配时,使用schema分配此类权限)

GRANT INSERT, SELECT, UPDATE, DELETE, EXECUTE, REFERENCES
ON SCHEMA:: UserTempSchema 
TO UserTemp
go

7.最后附上常用删除Sql语句(格式如下)

drop table schtable
drop user [User_tmp]
drop user testuser2
drop login [User_tmp]
drop login testlogin2
drop schema User_tmpSchema

以dbo用户(sa登录名)新建一张表table_1,默认产生dbo.table_1,并插入一条数据,如下图

切换用户,使用刚刚创建的用户UserTemp登录,新建一张表table_1,产生UserTempSchema.table_1,并插入一条数据,如下图

 以UserTemp用户,测试查询语句,结果如下,很显然虽然selcet语句没指定Schema,但是查询到了我们想要的结果

切换到dbo用户(sa登录名),测试查询语句,结果如下,虽然没指定schema名称,但是依旧是我们想要的结果

上面的sql脚本按步骤执行,执行1-5即可,后面的sql可根据自己的需求额外使用。

本篇暂时只做一个多租户系统在数据库存储层次上的设计(SqlServer下“单数据库多Schema模式”)的环境搭建事例

原文地址:https://www.cnblogs.com/xujie520/p/12343633.html

时间: 2024-08-29 20:49:59

SaaS模式应用之多租户系统开发(单数据库多Schema设计)的相关文章

凌煜云商城系统开发详解源码设计

凌煜云商城系统开发(李想.185.6504.8478)互联网是全球性的.这就意味着这个网络不管是谁发明了它,是属于全人类的.互联网的结构是按照"包交换"的方式连接的分布式网络.因此,在技术的层面上,互联网绝对不存在中央控制的问题.也就是说,不可能存在某一个国家或者某一个利益集团通过某种技术手段来控制互联网的问题.反过来,也无法把互联网封闭在一个国家之内-除非建立的不是互联网.然而,与此同时,这样一个全球性的网络,必须要有某种方式来确定联入其中的每一台主机.在互联网上绝对不能出现类似两个

BizTalk开发系列(十二) Schema设计之Group与Order

开发BizTalk项目的时候会先约定各系统之间往来的消息格式. 由于BizTalk内部唯一使用XML文档.因此消息的格式为XML Schema(XML Schema 用于描述 XML 文档的结构).虽然BizTalk提供了对于XML消息的验证功能.但是往往在BizTalk Schema设计器设计Schema的时候对于Group的用途不是很在意.今天我们来了解一下它的作用,希望对于设计灵活的Schema有点帮助. 首先,我们来了解一下Group的概念,在W3C的定义中. Group是用于定义在复杂

互助盘模式案例解析,互助系统开发

一:静态收益2%/天投资额60到100000元之间, 月固定收益都是60%利息!当有人需要资金帮助时,你就可以把你的资金打给对方!当你需要资金帮助时,你就可以在平台内提出申请,等待别人帮助.就这样,不断的提供互助和接受互助,每个月60%的收益你就可以赚到.资金不经过互助系统平台,而是会员之间相互流转,详情加VX:dingyulong2没有任何风险.比如:您帮助别人10000元它们将立即开始成长!一个月后,这10000将成为16000元.因此,您将能得到16000元的协助.利润丰厚,真正的以小博大

爱我中华互助模式,三九软件互助系统开发

自投20元,根据二八矩阵,每人推荐2人,复制到八层的原理,按时升级,就能收到510个红包,最小20元俩个,2560元256个.层占位2人,在升一级会员时每人给你20元,合计40元;第二层占位4人,在升2级会员时每人给你40元,合计160元;第三层占位8人,在升3级会员时每人给你80元,合计640元;第四层占位16人,在升4级会员时每人给你160元,合计2560元;第五层占位32人,在升5级会员时每人给你320元,合计10240元;第六层占位64人,在升6级会员时每人给你640元,合计40960元

数字资产聚合交易新模式聚合币币交易所系统开发

聚合交易所是去年出的新模式,这种模式就像他的名字一样,聚合对接多个交易所,不需要用户去绑定交易所API,而是在交易所后台就打通了所有交易所,真正意义上实现了聚合交易所. 1.聚合交易所可以对接市场上大多数交易所,其他交易所开放接口就可以对接.同时也可以对接那些交易所的所有交易对,几乎涵盖市场上百分之九十的币种. 2.聚合交易所拥有智能比价功能,实时的在多个交易所的价格上比较并展现最优下单价格,让用户更好更优的下单,无需再去使用第三方工具比价,省事省时. 以上是这个聚合交易所的两大亮点,其他都和普

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified

XML Schema中的命名空间前缀限定包括对元素(Element)或属性(Attribute)的限定,即常见的如 “<ns0:root>...</ns0:root>”之类的格式.一般情况下在BizTalk Schema编辑器中设置架构的属性 elementFormDefault /AttributeFormDefault 在该 schema 的目标命名空间中声明的元素的形式.该值必须是下列字符串之一: "qualified" 或 "unqualifi

英伦大厦游戏模式系统开发

英伦大厦系统开发[188-2646-6502微/电].英伦大厦模式开发.英伦大厦游戏开发(类似皮皮果.英伦大厦模式系统定制)找-- 因为专注,所以专业. 我们是专门从事INTERNET 电子商务平台应用软件开发和B2C等电商平台建设领域,集创意.策划.设计制作.技术开发于一体的专业网络应用服务提供商. 需求定制化有多种实现方式:可以是产品设计上放开灵活度,可以是独立部署,独立部署也可以分模块或全部.总而言之,不能用规模衡量一切,也不能用一个方法框死saas模式;战略落地到战术应该是灵活可变通的.

全返通系统开发平台

全返通系统开发平台<苏经理;134-1619-5045>全返通系统开发模式,全返通系统开发,全返通系统模式开发,全返通系统平台搭建,全返通系统APP软件开发.   全返通模式系统解说; 无论线上还是线下,只要在全返通平台上交易,消费者买东西花的钱,全返通100%全额返还给您:商家缴纳的佣金,全返通也将100%全额返还给您! 2.返还时间 从交易完成当天开始,每天以千分之一左右依次递减的返利速度,消费者进行消费,商家将消费的百分之十五交于平台,平台再将消费金额以百分之百返还给消费者,以百分之十五

溯源系统开发,区块链系统开发,期货系统开发

溯源能有效追责,对食品行业的自我约束起到了重要意义,随着溯源性能逐渐被认可,其功能不再局限于食品行业,药品.服装.汽配.电子.奢侈品行业都有广泛的应用. 市面上区块链溯源企业的模式是什么? 溯源系统开发 Tel: 前面138中间2315后面3201 主流的模式有两种: 一种是做行业公链,在平台上面又可以做溯源的存证以及商品的资产化.另一种是做应用,也就是本身没有链,而是把应用当作一个重要的商业模式. 一般来说企业直接接触的是应用企业,也就是帮企业客户做开发.集成.接口的一些应用服务商.而我们的未