在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。
不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,可以存入不同的数据(即schema用户自己的数据)。
Oracle里schema几乎和user/用户是通用的。schema是指一组数据库object(比如:表,视图,包,序列,等等),而这些object是属于用户的,属于一个用户的所有object就叫schema。
如果你使用Oracle的企业管理器Enterprise Manager,你会发现里面的用户就叫schema。
Schema 中文意思是 方案.
"方案"只是 Oracle 一个分类,不同用户有不同的方案.
拿 DBA Studio 来说吧,在左边分了四大类:(例程,存储,安全,方案)
例程: 是管理库的启动...之类的.
存储: 管理表空间,数据文件之类.
安全: 就是管理用户(密码,表空间分配...)
方案: 有(表,视图,存储过程...),不同用户有不同的案.
如: 在"方案"->选你的"用户名"之后,才会出现用户名相关的表.
----------------------------两个不容易理解的概念──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的方式进入别人的房子。
这个时候,你可以看到别人房子里的家具(desc)。
如果你没有特别指定的话,你所做的操作都是针对你当前所在房子中的东西。
至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的主人有没有给你这样的权限了,或者你是整个大厦(DB)的老大(DBA)。alter session set schema可以用来代替synonyms。
如果你想调用其他schema的对象(有权限的前提下),但并没有建synonym,同时又不想把其他schema名字放入代码中,就可以首先使用alter session set schema=<其他schema名字>。
分享到:
相关推荐
看来有的人还是对schema的真正含义不太理解,现在我再次整理了一下,需要的朋友参考下
使用 sql 脚本, 建立 oracle hr schema
如果在安装ORACLE时没有安装HR schema,可以通过以下的资源对其进行创建。资源内包含了创建HR用户所需要的.sql档和具体操作说明。 路径可以根据自己的实际情况进行修改。
Oracle HR hr_main Oracle Example Schema
用于比较用户下面的表、索引,并生成同步SQL。 可以比较表、列、主键、外键、索引。
Oracle database 10g SQL开发指南中 store模式下的store_schema脚本 相应的本书的pdf电子书也在我的上传资源中,需要的可以去下载!
3.在这边点击 Executables,在Export Dump:和Import Dump:中分别输入Oracle安装路径\product\10.1.0\db_3\BIN\expdp.exe,Oracle安装路径\oracle\product\10.1.0\db_3\BIN\impdp.exe,点 OK 4.进入 Database|Export|...
created by running the Python script [create_schema.py][1]. The script requires SYSDBA privileges and will prompt for these credentials as well as the names of the schemas and edition that will be ...
cd oracle-schema-doc 将软件包安装到bower_components /。 bower install 生成并提供服务的项目,这将在浏览器中打开结果。 gulp serve 关于 这个应用程序是使用生成器并添加了配方。 它使用以下Web前端工具:
oracle创建表,索引,表空间,触发器,schema用户,序列的Sql文
主要介绍了Oracle数据库中的对象集合schema,是Oracle数据库入门学习中的基础知识,需要的朋友可以参考下
希望能够帮助到你。
Oracle9i数据类型Java数据类型Schema类型对比
oracle 10g的hr_schema,可以导进11g以上进行练习
sample_schema_scripts Oracle 数据库 示例方案脚本(含结构+数据脚本) 安装Oracle时未勾选“示例方案”可执行该脚本创建对应数据库
Oracle不支持SQL标准的INFORMATION_SCHEMA数据字典。 该项目创建一个information_schema模式,并添加符合SQL标准的视图。 这些视图是SQL和PL / SQL,它们建立在Oracle数据字典上。
我现在想从我的存储过程中使用其他 schema 表来执行 SQL 语句。存储过程是一个 Schema,表是在另一个 Schema。 但 是 这 样 做 的 结 果 是 出 现 了 “ORA-01031: insufficient privileges”错误。请告诉我如何才能...
Overview of Schemas and Common Schema Objects Overview of the oracle Data Dictionar Overview of the Oracle Instance Overview of Accessing the Database Overview of Oracle utilities 本节包含以下主题 ...