oracle 中Schema

Schema   中文意思是   方案.   
     "方案"只是   Oracle   一個分類,不同用戶有不同的方案.  
  拿   DBA   Studio   來說吧,在左邊分了四大類:(例程,存儲,安全,方案)  
  例程:   是管理庫的啓動...之類的.  
  存儲:   管理表空間,數據文件之類.  
  安全:   就是管理用戶(密碼,表空間分配...)  
  方案:   有(表,視圖,存儲過程...),不同用戶有不同的案.  
  如:   在"方案"->選你的"用戶名"之後,纔會出現用戶名相關的表.  

 

 

兩個不容易理解的概念──user和schema
作者:Alizze 出處:賽迪網 更新時間:2008-07-09 責任編輯:seward
 
 

前言: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名字>。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章