2014-09-25 65 views
-2

我有一個包含多個表的數據庫。現在有N個用戶可以訪問該數據庫和這些表。架構?究竟是什麼。爲什麼我們沒有Create Schema語句,w.r.t Oracle

唯一的區別是每個人都有不同的登錄ID,密碼但是對錶的訪問權限都是一樣的。典型的項目環境。

因此,每個用戶都有自己的模式,或者他們連接到相同的模式,他們只是用戶。

當你訪問一個表時說something.tables_name這裏是用戶?架構?

+1

在詢問之前閱讀此處:http://docs.oracle.com/cd/B19306_01/server.102/b14220/schema.htm – Oscar 2014-09-25 14:45:47

+0

是的,已經閱讀過,但沒有回答我的問題。 – garg10may 2014-09-25 14:49:23

回答

0

所有有用的信息,我發現了。下面

用它來知道你的架構和用戶名,應該是一樣的。

select sys_context('USERENV', 'SESSION_USER') from dual; 
select sys_context('USERENV', 'CURRENT_SCHEMA') from dual; 

你ç一個知道他們只是同義詞這是造成混亂的一些主要架構的對象(表,視圖)通過您的架構

select * from user_objects 

資在我的情況的對象。我想我只是一個用戶,但該用戶擁有的所有對象都稱爲架構,你可以說我不是一個重要的架構。

select * from DBA_objects 

以上將顯示數據庫中的所有模式對象。地獄很多。

select * from DBA_CATALOG 

列出數據庫中所有表,視圖,同義詞和序列的名稱,類型和所有者(USER視圖不顯示所有者)。

在我的情況下,我能夠訪問表,因爲我有許多同義詞。所以你可以說我是一個用戶並擁有一個模式並且可以訪問一個主用戶的模式。像我這樣的用戶被刪除和添加,但不是主要的用戶。

1

你問,「當你訪問一個表在這裏說something.tables_name的東西是用戶模式

模式碰巧的是一樣的用戶id從奧斯卡的鏈接:??。 」 A模式是數據或模式對象的邏輯結構的集合。模式由數據庫用戶擁有,並且與該用戶具有相同的名稱。每個用戶擁有一個模式。」

有用戶和模式之間的1對1的關係。

然而通過許可和授權,可以授予用戶訪問其他用戶的模式。

+0

但在我的情況下,它與我的登錄ID不同。我可以直接訪問表而不用任何東西,但有時如果它不起作用,那麼我不得不附加一些東西。作爲前綴,我可以訪問。 – garg10may 2014-09-25 14:54:57

+1

@ garg10may - 如果你不使用模式前綴,可能你正在使用全局同義詞嗎? – yamny 2014-09-25 15:01:58

+0

返回'select sys_context('USERENV','SESSION_USER')是否從dual;'和'select sys_context('USERENV','CURRENT_SCHEMA')從double;'? – 2014-09-25 15:04:31