从定义中我们可以看出方案(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也随之产生。

转载于:https://www.cnblogs.com/tesila/p/5923922.html

Oracle的方案(Schema)和用户(User)的区别相关推荐

  1. oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)

    数据文件和日志文件是数据库中最关键的文件.它们是数据存储的地方.每一个数据库至少有一个与之相关的数据文件,通常情况下不仅仅一个,有非常多.数据在数据文件里是怎样组织的?要了解这些内容我们首先必须理解什 ...

  2. oracle学习笔记一:用户管理(2)创建删除用户

    本文主要介绍如何创建和删除用户,当然里面牵涉很多知识,慢慢道来. 1,创建用户 需求:假设你是oracle管理员,当一个同事入职,你需要分配给一个账号. 创建用户,一般需要有相应权限的用户才可以创建用 ...

  3. 关于表空间、Schema和用户

    数据库这个柜子 解释数据库.表空间.数据文件.表.数据的最好办法就是想象一个装满东西的柜子. 从物理方面来讲:数据库是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信 ...

  4. Oracle - 新装数据库、新建用户注意事项

    Oracle - 新装数据库.新建用户需要注意的几点 目前,新装数据库一般会建两个tablespace: cdmadata, cdmaidx.在新建用户时,一般赋予新用户几个role: 角色 说明 c ...

  5. Linux下oracle 数据库表空间、用户的创建,数据的导入导出操作指南

    Oracle新建用户并且将已有的数据dmp文件导入到新建的用户下的操作流程 1.切换到oracle用户下 su - oracle 2.登录sqlplus sqlplus /nolog 3.使用sysd ...

  6. ORACLE VPD方案

    ORACLE VPD方案DROP USER VPD CASCADE; DROP ROLE R_VPD; CREATE USER VPD IDENTIFIED BY VPD; CREATE ROLE R ...

  7. Oracle数据库的体系结构和用户管理

    一.Oracle体系结构 数据库的体系结构是指数据库的组成.工作过程.以及数据库中数据的组织与管理机制,要了解Oracle数据库的体系结构,必须理解Oracle系统的主要组件和重要概念. 1.Orac ...

  8. Oracle中sys和system用户的区别

    Oracle中sys和system用户的区别 1.数据库的启动需要以SYSDBA/SYSOPER身份登录. 2.如果在同一主机上使用IPC连接到数据库使用操作系统授权,登录任何一个用户都可以拥有as ...

  9. Oracle 数据库相关主题:用户、权限、常用管理工具、常用命令

    1. Oracle数据库中SYS.SYSTEM.DBSNMP.SYSMAN 四种用户有什么区别? SYS用户(超级管理员):sys用户具有"SYSDBA"或者"SYSOP ...

  10. oracle创建表空间.创建用户.创建表

    oracle创建表空间.创建用户.创建表 转:http://blog.csdn.net/zhoubl668/archive/2009/02/02/3858576.aspx 在SQL*Plus中:(1) ...

最新文章

  1. 数字图像的表示与类型(学习篇)
  2. openStack centos6.4
  3. 奠定现代计算机发展的人物和思想,计算机基础第一部分.ppt
  4. linux 软件包管理设置,Linux速通08 网络原理及基础设置、软件包管理
  5. python队列只能一个个读取吗_python队列Queue的详解
  6. 根深才能叶茂:基础软件突破亟待产业界携手创新完善生态
  7. 广数980tc3从u盘复制到系统_广州数控GSK980TC3车床数控系统操作手册(选)
  8. Linux学习一周初体验
  9. 51nod 1833 状压dp加一点图论
  10. 经常用到的一个分页存储过程
  11. android m版本 root,Android M或开放更多权限,root还需要吗?
  12. 计算机系统动态库修复,win10系统提示dll动态链接库出现故障修复的处理步骤
  13. varchar2 汉字长度问题
  14. svg之defs以及use的使用
  15. 微信支付官方揭开刷脸支付神秘面纱
  16. IPv6升级改造包括什么?
  17. Mybatis遇到的报错集合
  18. java语言获取数据库中的表的总行数
  19. 将图像DN值定标维热辐射强度之后,可用Planck函数求解出星上亮度温度
  20. iOS开发之数据存储

热门文章

  1. PAT之STL:vector、set、map、stack、queue
  2. bcb quickrep保存为 图片_干货|SCI论文中图片与组图技巧
  3. 【2019银川网络赛:L】Continuous Intervals(线段树区间处理+单调栈+思维)
  4. eagle8.6 linux 补丁,Ubuntu 12.04无法安装Eagle-6.x 解决方法
  5. C语言判断一个数是不是质数(C笔记)
  6. n=sizeof(a)/sizeof(int)的含义(C语言)
  7. log4net配置mysql_使用独立的log4net.config文件配置log4net,将日志记录到Mysql数据库【原创】...
  8. ubuntu 20.04上配置 QT_ROS的插件
  9. android 关掉屏幕旋转,防止在Android中屏幕旋转时解除对话框
  10. java看懂程序_手把手教你运行第一个 Java 程序,看不懂你来骂我!