在Oracle系统中,方案是一个非常重要的概念,方案的名称与用户的名称相同,但是方案与用户是两个完全不一样的概念。

默认情况下,所有用户所创建的对象都位于自己的方案中,也就是说Oracle使用方案的方法将数据库按用户进行了划分。

详细看看网友分享的:

首先先理解方案的概念,然后再理解方案与数据库的关系。

先来看一下他们的定义:

A schema is a collection of database objects (used by a user.).

Schema objects are the logical structures that directly refer to the database’s data.

A user is a name defined in the database that can connect to and access objects.

Schemas and users help database administrators manage database security.

从定义中我们可以看出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。这就像一个用户有一个缺省的表空间,但是该用户还可以使用其他的表空间,如果我们在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其他表空间中,我们需要在创建对象时指定该对象的表空间。

咳,说了这么多,给大家举个例子,否则,一切枯燥无味!

SQL> Gruant dba to scott

SQL> create table test(name char(10));

Table created.

SQL> create table system.test(name char(10));

Table created.

SQL> insert into test values('scott');

1 row created.

SQL> insert into system.test values('system');

1 row created.

SQL> commit;

Commit complete.

SQL> conn system/manager

Connected.

SQL> select * from test;

NAME

----------

system

SQL> ALTER SESSION SET CURRENT_SCHEMA = scott; --改变用户缺省schema名

Session altered.

SQL> select * from test;

NAME

----------

scott

SQL> select owner ,table_name from dba_tables where table_name=upper('test');

OWNER TABLE_NAME

------------------------------ ------------------------------

SCOTT TEST

SYSTEM TEST

--上面这个查询就是我说将schema作为user的别名的依据。实际上在使用上,shcema与user完全一样,没有什么区别,在出现schema名的地方也可以出现user名。【以上转自http://bbs.loveunix.net/viewthread.php?tid=13418】

通过以上解释,应该很容易明白什么是方案了,我再分析一下方案与数据库之间的关系。

上文已经提到过方案是用户使用的数据库对象的集合,一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。

我们只能以某一身份登陆某一数据库,然后再该数据库中进行操作;但是一个用户登陆某个数据库后,可以在该数据库中操作各个不同方案的数据库对象。也就是说一个数据库是由各种不同方案的数据库对象组成;而一个方案是由不同数据库里的该方案的数据库对象组成。

例如:我们安装ORACLE数据库时系统默认生成一个名为ORCL的数据库,安装完之后,我们再创建一个名为FATEST的数据库,这个时候,我们以SYS的身份登陆ORCL数据库,我们发现系统默认的用户(包括SYS\SYSTEM\SYSMEN等等)都有自己相应的方案。此时我们再创建一个用户:TESTUSER,系统会为TESTUSER自动产生一个同名的方案名。然后我们可以创建表AA,并且属于方案TESTUSER;也可以创建同名的表AA,但是属于SYS。同理,我们可以以TESTUSER用户的身份登陆ORCL操作该数据库其他方案的数据库对象。

但是我们却不能操作FATEST中的数据库对象。再登陆FATEST创建表TESTUSER.BB、TESTUSER.AA,那么方案TESTUSER的数据库对象包括FATEST数据库中的表AA、BB以及其它默认对象、ORCL的表AA以及其它默认对象。

oracle方案的概念,Oracle 系统中方案的概念相关推荐

  1. 服务器系统迁移方案,服务器与应用系统迁移方案.doc

    服务器与应用系统迁移方案 服务器和应用系统迁移方案 一.迁移方案总体思路 新旧系统的迁移是一个整体系统工程.迁移必须保证用户系统建设的相关要求,在迁移过程中,我们需要重点考虑几个问题: 1.数据迁移如 ...

  2. aix oracle监听配置_AIX系统中安装ORACLE,客户端连接时,监听会宕掉的问题

    一次做实验,在AIX5300-06系统中安装ORACLE10.2.0.1数据库,安装过程都正常,在服务器上不加@实例名连接时也很正常,可是客户端一连接,监听就会宕掉.故障现象如下: LSNRCTL&g ...

  3. 换主板 oracle 蓝屏,在win7系统中更换主板后蓝屏的解决方案

    关于计算机在日常生活中的重要性,我不会多说,但是一旦您在win7系统中更换主板后遇到蓝屏引导问题,那么很大一部分小伙伴就无从下手. 在win7系统中更换主板后的屏幕. 实际上,在win7系统中更换主板 ...

  4. 档案信息服务器配置方案,档案馆档案信息化系统建设方案.doc

    档案馆档案信息化系统建设方案 档案馆 档案信息化系统建设 设 计 方 案 2013年7月 目录 TOC \o "1-2" \h \z \u HYPERLINK \l "_ ...

  5. 4_InfluxDB学习之InfluxDB的基本概念、InfluxDB中独有的概念(Point,series),InfluxDB学习之InfluxDB的基本操作,InfluxDB操作方式,crud

    4.InfluxDB学习之InfluxDB的基本概念 4.1.与传统数据库中的名词做比较 4.2.InfluxDB中独有的概念 4.2.1.Point 4.2.2.series 4.3.InfluxD ...

  6. 软件系统测试方法方案,软件测试方法及系统技术方案

    [技术实现步骤摘要] 本专利技术涉及软件测试领域,尤其涉及一种软件测试方法及系统. 技术介绍 区间运算作为一种有效的程序变量取值范围的分析方法,已经被广泛的应用到面 向路径的程序结构化测试中,如测试程 ...

  7. 华为交换机查看每个网口带宽使用率_监控系统中带宽常见概念辨析

    监控图像卡顿? 网络监控摄像机的图像会卡顿,但是我们算了带宽,一台网络摄像机占8M带宽,交换机百兆,接入11台,理论上100÷8=12.5台,一共接11台,那么网络带宽够了,但还会网络卡顿,是什么原因 ...

  8. Linux系统中文件系统管理

       一.文件系统的基本组成和文件系统结构    1.Linux 系统的基本组成 图例:    Linux系统由Linux内核和一系列GNU库及程序组成.根据其所处的位置,从内向外依次分为:内核.运行 ...

  9. 服务器和应用服务器迁移方案,服务器和应用统迁移方案.doc

    服务器和应用统迁移方案 服务器和应用系统迁移方案 一.迁移方案总体思路 新旧系统的迁移是一个整体系统工程.迁移必须保证用户系统建设的相关要求,在迁移过程中,我们需要重点考虑几个问题: 1.数据迁移如何 ...

最新文章

  1. 【PAT (Advanced Level) Practice】1005 Spell It Right (20 分)
  2. (转载)android如何在style文件中使用自定义属性
  3. 阿里P7/P8学习路线图——技术封神之路
  4. GPU 图像并行处理
  5. 【Linux】一步一步学Linux——bunzip2命令(66)
  6. 定义一个函数模板,要求返回两个值中的较小值。
  7. 中raise抛出异常_Ruby 异常
  8. 命令行重启Oracle数据库
  9. 阐述沙盒游戏的历史和理论
  10. Tensorflow基本语法和实现神经网络
  11. 高等数学基础03:函数的连续性
  12. 超级实用的软著申请源代码材料格式文档生成辅助工具——软著源代码工具
  13. 用于科学计算机的计算器特点是什么,科学计算器有哪些功能
  14. JVM规范(四)Frames
  15. 从 Secure Element 到 Android KeyStore
  16. Java-ZZH1-78面试题
  17. 删除归档日志错误ORA-15028: ASM file '..' not dropped; currently being accessed
  18. 投资欢喜传媒的B站,有着怎样的内容焦虑?
  19. Sci-hub文献下载器
  20. matlab中单独存图_matlab 保存图片的几种方式

热门文章

  1. java 定义map集合_Java中的Map集合
  2. 昌邑机器人_昌邑检测关节机器人,关节机器人
  3. 深度学习三维人体建模最新论文、资源、数据、代码整理分享
  4. 计算机音乐谱千本樱,原神乐谱千本樱
  5. uoj51 元旦三侠的游戏
  6. 负债累累只因创业失败,郑州42岁餐饮老板创业之殇
  7. 汽车HVAC(空调系统)验证自动化场景设计
  8. jupyter notebook 命令行运行时自定义目录
  9. VS C#类方法 实例化 对象
  10. 为什么睡袋怎么放_秋季昼夜温差大,宝宝睡觉该怎么盖被好?教你几招轻松解决...