oracle中的Schema简析

在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,
同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,
这样,一个大数据库就可以根据应用把其表分开来管理。
 
不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,
也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,
每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,
可以存入不同的数据(即schema用户自己的数据)。

Oracle里schema几乎和user/用户是通用的。schema是指一组数据库object
(比如:表,视图,包,序列,等等),而这些object是属于用户的,
属于一个用户的所有object就叫schema。

如果你使用Oracle的企业管理器Enterprise Manager,你会发现里面的用户就叫schema。

Schema 中文意思是 方案. "方案"只是 Oracle 一个分类,不同用户有不同的方案.

拿 DBA Studio 来说吧,在左边分了四大类:(例程,存储,安全,方案)

例程: 是管理库的启动...之类的.   www.2cto.com

存储: 管理表空间,数据文件之类.

安全: 就是管理用户(密码,表空间分配...)

方案: 有(表,视图,存储过程...),不同用户有不同的案.

如: 在"方案"->选你的"用户名"之后,才会出现用户名相关的表.

----------------------------两个不容易理解的概念──user和schema

user是控制权限的,而schema则是一个容器,非所有者如果需要访问这个容器下的对象
就需要在对象前面写上schema(owner)的名字,如果不想写而又没有创建synonym,此时可以通过alter session set current_schema=schema_name来改变当前session的schema从而在访问对象时省去schema(owner);最终能否访问对象还是要看是否有访问这个对象的权限而和schema无关。

深入理解user和schema的区别:

user即Oracle中的用户,和所有系统的中用户概念类似,用户所持有的是系统的权限及资源;

而schema所涵盖的是各种对象,它包含了表、函数、包等等对象的“所在地”,并不包括对他们的权限控制。

好比一个房子,里面放满了家具,对这些家具有支配权的是房子的主人(user),而不是房子(schema)。

你可以也是一个房子的主人(user),拥有自己的房子(schema)。可以通过alter session的方式
进入别人的房子。  www.2cto.com

这个时候,你可以看到别人房子里的家具(desc)。

如果你没有特别指定的话,你所做的操作都是针对你当前所在房子中的东西。

至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的
主人有没有给你这样的权限了,或者你是整个大厦(DB)的老大(DBA)。
alter session set schema可以用来代替synonyms。

如果你想调用其他schema的对象(有权限的前提下),但并没有建synonym,
同时又不想把其他schema名字放入代码中,就可以首先使用alter session set schema=<其他schema名字>。

 
 
本文转自http://www.2cto.com/database/201205/131238.html

oracle schema彻底理解的更多相关文章

  1. Oracle Schema Objects——PARTITION

    Oracle Schema Objects 表分区 表- - 分区( partition )TABLE PARTITION 一段时间给出一个分区,这样方便数据的管理. 可以按照范围range分区,列表 ...

  2. Oracle Schema Objects——Index

    索引主要的作用是查询优化. Oracle Schema Objects 查看执行计划的权限:查看执行计划plustrace:set autotrace trace exp stat(SP2-0618. ...

  3. Oracle Schema Objects——伪列ROWID Pseudocolumn(ROWNUM、ROWID)

    Oracle Schema Objects Oracle Schema Objects——Tables——Oracle Data Types Oracle伪列 在Oracle数据库之中为了实现完整的关 ...

  4. Oracle Schema Objects——Synonyms

    Oracle Schema Objects 同义词 同义词 = 表的别名. 现在假如说有一张数据表的名称是“USER1.student”,而现在又为这张数据表起了一个“USER1”的名字,以后就可以直 ...

  5. Oracle Schema Objects——Sequences(伪列:nextval,currval)

    Oracle Schema Objects 序列的作用 许多的数据库之中都会为用户提供一种自动增长列的操作,例如:在微软的Access数据库之中就提供了一种自动编号的增长列(ID列).在oracle数 ...

  6. Oracle Schema Objects——View

    Oracle Schema Objects Oracle视图View 普通视图.物化视图 视图(视图不包含数据,不是段对象,不占用空间,只是一个代码.) 作用: 简化SQL 为安全,不暴露表的名称 视 ...

  7. Oracle Schema Objects(Schema Object Storage And Type)

    One characteristic of an RDBMS is the independence of physical data storage from logical data struct ...

  8. Oracle Schema Objects——Tables——Oracle Data Types

    Oracle Schema Objects Oracle Data Types 数据类型 Data Type Description NUMBER(P,S) Number value having a ...

  9. Oracle Schema Objects——Tables——TableStorage

    Oracle Schema Objects Table Storage Oracle数据库如何保存表数据? Oracle Database uses a data segment in a table ...

随机推荐

  1. 一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用演示样例

    了解sql的朋友都知道,我们在查询的时候能够採用join查询,即对有一定关联关系的对象进行联合查询来对多维的数据进行整理.这个联合查询的方式挺方便的.跟我们现实生活中的托人找关系类似,我们想要完毕一件 ...

  2. 在android中读写文件

    在android中读写文件 android中只有一个盘,正斜杠/代表根目录. 我们常见的SDK的位置为:/mnt/sdcard 两种最常见的数据存储方式: 一.内存 二.本地 1.手机内部存储 2.外 ...

  3. 【HDU 1846】 Brave Game

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=1846 [算法] 巴什博弈 若有(m+1)个石子,显然先手不能直接取完,后手必胜 因此,我们可以把石 ...

  4. VirtualBox 5.1.14 获取VirtualBox COM对象错误

    Oracle VM VirtualBox 5.1.14 安装完成之后显示错误, Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, but C ...

  5. Unity3d 刚体

    using UnityEngine; using System.Collections; public class rigidbody_ : MonoBehaviour { private Rigid ...

  6. Monad Maybe

    在上一篇, 我们创建了第一个Monad,Indentity<T>, 它可能是最简单的Monad, 使我们可以快速了解Monad的模式,而不用陷入细节.接下来我们创建一个有用的Monad, ...

  7. 微信小程序怎么开发(小程序开发文档)

    微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 2017年1月9日~2018年1月9日,小程序正式上线一周年.上线以来,小程序不断地释放新能力, ...

  8. css3实现3D切割轮播图案例

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. hdu3873 Invade the Mars 有限制的最短路

    此段略过.看完题目,觉得这真的是一道好题目.自己有想法,但是实现起来却很难.看题解,写代码,然后写题解,意义何在?我不认为自己总是这么弱.就算抄代码,我也要有自己的理解.菜鸟总会成长. 首先,题目必须 ...

  10. linux网络路由配置

    网卡配置文件介绍: # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 (描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为 ...