Oracle的方案(Schema)和用户(User)的区别

转载 2013年12月04日 09:46:30
从定义中我们可以看出方案(Schema)为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。

        一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决(Oracle中虽然有create schema语句,但是它并不是用来创建一个schema的),在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一对应并且相同,所有我们可以称schema为user的别名,虽然这样说并不准确,但是更容易理解一些。

       一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过select * from emp; 其实,这sql语句的完整写法为select * from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。类似如果我们在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。这就像一个用户有一个缺省的表空间,但是该用户还可以使用其他的表空间,如果我们在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其他表空间中,我们需要在创建对象时指定该对象的表空间。

       oracle中的schema就是指一个用户下所有对象的集合,schema本身不能理解成一个对象,oracle并没有提供创建schema的语法,schema也并不是在创建user时就创建,而是在该用户下创建第一个对象之后schema也随之产生,只要user下存在对象,schema就一定存在,user下如果不存在对象,schema也不存在;这一点类似于temp tablespace group,另外也可以通过oem来观察,如果创建一个新用户,该用户下如果没有对象则schema不存在,如果创建一个对象则和用户同名的schema也随之产生。

Oracle 用户(user)和模式(schema)的区别

概述: (一)什么Oracle叫用户(user):   A user is a name defined in the database that can connect to and a...
  • h254931252
  • h254931252
  • 2016年10月10日 08:39
  • 1717

Oracle中User和Schema之间的区别

前言:user是控制权限的,而schema则是一个容器,非所有者如果需要访问这个容器下的对象就需要在对象前面写上schema(owner)的名字,如果不想写而又没有创建synonym,此时可以通过al...
  • zhaisharap
  • zhaisharap
  • 2014年05月08日 15:52
  • 894

ORACLE中的两个概念:user和schema的区别和联系

http://oracle.chinaitlab.com/induction/835839.html 今天重读ORACLE官方文档《concepts》,读到schema的基本概念,对它的理解更进一层...
  • caolaosanahnu
  • caolaosanahnu
  • 2012年07月06日 12:53
  • 1507

Oracle中User与Schema的简单理解

方案(Schema)为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,sc...
  • sundacheng1989
  • sundacheng1989
  • 2014年03月31日 16:15
  • 6669

mysql、orcl中database、schema、user之间的关系

mysql、orcl中database、schema、user之间的关系
  • nlznlz
  • nlznlz
  • 2017年03月19日 22:01
  • 782

user和schema的区别

这两个概念确实不太好理解 说穿了其实user是控制权限的,而schema是个容器,非所有者要访问这个容器下的对象就需要在 对象前面写上schema(owner)的名字,如果不想写而又没有创建syn...
  • zml19910422
  • zml19910422
  • 2014年04月14日 22:11
  • 561

数据库中User和Schema的关系!

如果我们想了解数据库中的User和Schema到底什么关系,那么让我们首先来了解一下数据库中User和Schema到底是什么概念。       在SQL Server2000中,由于架构的原因,Use...
  • YanJiangbo
  • YanJiangbo
  • 2007年09月12日 18:27
  • 7292

关于Oracle中schema和user区别的认知

最近在测试代码的时候遇到了一件事,花费了不少脑力。 在Java代码中DatabaseMetaData类的getColumns方法(参照http://docs.oracle.com/javas...
  • bingleiyuren
  • bingleiyuren
  • 2016年08月26日 10:30
  • 256

oracle中Schema和User两个到底是什么关系

Oracle数据库中Schema和User的关系是一一对应的,也就是说一个Schema只对应一个User,一个User对应一个Schema。当某个User下面有table,view,Index.......
  • baijd_ss
  • baijd_ss
  • 2011年12月02日 14:44
  • 10700

数据库中的user和schema的关系

假如我们想了解数据库中的user和schema的关系,首先必须要清楚数据库中的user和schema的概念。   在sqlserver2000中,由于架构的原因,user和schema总有一层隐...
  • guodaoying
  • guodaoying
  • 2016年07月18日 01:19
  • 375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle的方案(Schema)和用户(User)的区别
举报原因:
原因补充:

(最多只允许输入30个字)