schema是什么意思?
Schema是Oracle中一個重要的概念,很容易跟User概念混淆。從下面多個角度來介紹:
1、首先來看一下原始的英文定義:
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.
2、從定義中可知Schema為數據庫對象的集合,為了區分各個集合,認為的給這個集合起個名字,也就是通常在企業管理器的方案下看到的許多類似用戶名的節點,節點也就是一個Schema,其包含了各種數據對象:如tables,
views, sequences, stored procedures, synonyms, indexes, clusters, and database
links。
3、Oracle里Schema幾乎和user/用戶是通用的。Schema是指一組數據庫Object
(比如:表,視圖,包,序列,等等),而這些Object是屬于用戶的,
屬于一個用戶的所有Object就叫Schema。
4、User即Oracle中的用戶,是控制權限的,和所有系統的中用戶概念類似,用戶所持有的是系統的權限及資源;而Schema所涵蓋的是各種對象,它包含了表、函數、包等等對象的“所在地”,并不包括對他們的權限控制。
5、舉例說明如下:
一個房子里面放滿了家具,對這些家具有支配權的是房子的主人(User),而不是房子(Schema)。 你可以也是一個房子的主人(User),擁有自己的房子(Schema)??梢酝ㄟ^alter session的方式進入別人的房子。 這個時候,你可以看到別人房子里的家具(desc)。 如果你沒有特別指定的話,你所做的操作都是針對你當前所在房子中的東西。
至于你是否有權限使用(select)、搬動(update)或者拿走(delete)這些家具就看這個房子的主人有沒有給你這樣的權限了,或者你是整個大廈(DB)的老大(DBA)。