当前位置:网站首页>数据库中的schema
数据库中的schema
2022-08-10 09:39:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
研究多租户的过程中涉及到了schema的概念,具体是什么呢?
schema的官方定义为:
A schema is a collection of database objects (used by auser.). Schema objects are the logical structures thatdirectly refer to the database’s data. A user is a name defined in the databasethat can connect to and access objects. Schemas and users help database administratorsmanage database security.
从定义我们可以看出:schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。 如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主人,有操作数据库中每个房间的权利,就是说每个数据库映射的user有每个schema(房间)的钥匙。
默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。访问一个表时,如果没有指明该表属于哪个schema,系统会自动加上缺省的schema。一个对象的完整名称为schema.object,而不属user.object。
在MySQL中创建一个Schema和创建一个Database的效果好像是一样的,但是在sqlserver和orcal数据库中效果又是不同的。 在SQL Server 2000中,user和schema总有一层隐含的关系,让我们很少意识到其实user和schema是两种完全不同的概念,假如我们在某一数据库中创建了用户Bosco,那么此时后台也为我们默认的创建了schema【Bosco】,schema的名字和user的名字相同。 在SQL Server 2005中,为了向后兼容,当用sp_adduser存储过程创建一个用户的时候,sqlserver2005同时也创建了一个和用户名相同的schema,然而这个存储过程是为了向后兼容才保留的,当我们用create user创建数据库用户时,我们可以用该用户指定一个已经存在的schema作为默认的schema,如果我们不指定,则该用户所默认的schema即为dbo schema,dbo房间(schema)好比一个大的公共房间,在当前登录用户没有默认schema的前提下,如果你在大仓库中进行一些操作,比如create table,如果没有制定特定的房间(schema),那么你的物品就只好放进公共的dbo房间(schema)了。但是如果当前登录用户有默认的schema,那么所做的一切操作都是在默认的schema上进行。 在Oracle数据库中不能新建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决,在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105690.html原文链接:https://javaforall.cn
边栏推荐
猜你喜欢
随机推荐
幂次方(暑假每日一题 20)
BUUCTF【pwn】解题记录(4-6页持续更新中)
【元宇宙欧米说】看UCOUCO如何将行为艺术融入元宇宙
解决ASP.NET Core在Task中使用IServiceProvider的问题
Oracle rac所在的网络要割接,停掉其中一个rac节点,这种方案可行吗?
FPGA时钟篇(二) 7系列clock region详解
并查集学习
DataStream API(基础篇) 完整使用 (第五章)
Which is the strongest workflow engine for "Technology Selection"?Chief Architecture Helps You Pick
Vivado时序约束中Tcl命令的对象及属性
Flink运行时架构 完整使用 (第四章)
CSDN 21 Days Learning Challenge - Polymorphism (05)
初识Flink 完整使用 (第一章)
Hugo NexT主题升级记录
「应用架构」TOGAF建模:企业可管理性图
Singleton pattern base class
"Guangzhou highway engineering measures for the supervision and administration of production safety, and revised from six aspects
Chapter 3 Search and Graph Theory (3)
原型和原型链
DAY25: Logic Vulnerability