2014-02-06 71 views
0

是否可以通過多個用戶訪問多個PDB?在Oracle 12c中與不同用戶連接到PDB 12c

考慮場景:

我有兩個共同的用戶: - Ç## a和C## b 和PDB: - PDBTEST

我面臨的問題:

當我連接普通用戶 - C## b,我無法查看通過C## a登錄創建的PDBTEST中的表。

雖然,我已經爲PDBTEST爲用戶C## a和C## b分配了權限。

對於普通用戶C## b,有沒有其他方法可以訪問PDBTEST?

步驟我下面:

以SYSDBA身份連接

1>創建了兩個用戶C## a和C## B(容器= ALL)

2>使用所有權限授予共同作用: ç##作用(容器= ALL)

3>分配ç##作用到這兩個用戶:C## a和C## b(容器= ALL)

4>創建PDB:PDBTEST

改變的會話,並設置容器= PDBTEST

5>授予Ç##作用到這兩個用戶:C## a和C##的內部B PDBTEST

6>連接用C##(未作爲SYSDBA)

改變的會話,並設置容器= PDBTEST

7>創建的表和插入的記錄:TestTable的

8>其中C## b連接(不作爲SYSDBA)

改變的會話,並設置容器= PDBTEST

我無法訪問表「TestTable的」以C## B之後連接..

更多,如果我用C##一個連接,我可以訪問插入記錄。

回答

0

您忘記限定表名(您沒有指定模式名稱)。這與非pdb數據庫沒有區別。如果你定義一個同義詞,你可以做這個工作。

此外,設置容器僅用於管理目的,絕對不能用於用戶訪問。對於用戶訪問,您應該創建一個專用服務。

+0

是其工作原理與同義詞,但是當相同的情況下,5-6 PDBS之間出現爲〜400個表,並應用具有多個用戶(如C#3A和C## b)用不同的角色和特權,那麼我怎樣才能克服這種情況?而不是設置容器,我如何創建專用服務? – user3279775