回覆列表
  • 1 # lanfengz1

    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)。

  • 中秋節和大豐收的關聯?
  • 紅底兩條白槓標誌是什麼車?