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. 301 和 302 对 SEO 的影响

    网站优化中,经常会面临网站链接修改或改变的事情,其中一个解决办法就是使用网站跳转的方式,处理变化的链接,下面讲述301和302跳转对SEO的影响. 301(永久移动) 请求的网页已被永久移动到新位置. ...

  2. C# WinForm DataGridView 给标题列增加序号及格式化某个字段

    DataGridView 给标题列增加序号 private void dataGridView1_DataBindingComplete(object sender, DataGridViewBind ...

  3. All Metro Apps on Windows 8.1 Do Not Work

    所有的Metro Apps不能够正常打开,表现为打开后自动最小化到任务栏,并且不能恢复正常状态.在Event Viewer\Application中相应的错误信息为: Activation of ap ...

  4. Fabric quickly

    环境很重要.环境很重要.环境很重要 # CentOS 7 $ setenforce 0 # 可以设置配置文件永久关闭 $ systemctl stop iptables.service $ syste ...

  5. css3中的animation属性

    作用:通过给元素添加animation属性,可以赋予该元素动画效果. <!DOCTYPE html><html>    <head>        <styl ...

  6. web拼图错误分析

    老师要求用web制作一个拼图游戏. 发现的问题:点击随机生成拼图的按钮后,打乱的图片会出现无法还原的情况. 发现过程:每次生成一个拼图后会测试它怎么拼回去,结果发现有时候拼不回去. 数学原理:如果两个 ...

  7. 关于iscroll.js插件的使用

    iscroll 作用: 可以让区域滚动效果好看一些 使用: 1. html结构 外面必须包一层盒子,切内部的元素要尽量简单,不然会影响滚动效果 <div id="wrapper&quo ...

  8. ProgressDialog的关键几个函数

    进度条对话框在开发是常见的一种工具,只要注意以下几点,就可以轻松使用. ProgressDialog.setMax(MAX_PROGRESS);  //设置最大值,可以如下定义一个常值 //priva ...

  9. 基于连接的Java网络编程

    实现了基于TCP的Java Socket编程,功能很简单:客户端向服务器端输出一名话"connect",服务器端接收输出到控制台并向客户端输出一名话"Hello" ...

  10. Windows 10 常用软件推荐

    QQ/TIM 大众的通讯工具,十多年之后的今天,依然是国内常驻用户第一的通讯工具 截图.远程桌面.视频会议.文件传送依旧是非常好用 TIM 算是轻聊版的升级版 微信 for Windows 近年新兴的 ...