在Oracle 12c中将不同用户连接到PDB

时间:2014-02-06 13:37:52

标签: database-connection oracle12c

是否可以访问多个用户的多个PDB?

考虑一下情景:

我有两个普通用户: - c ## a和c ## b 和pdb: - PDBTEST

我面临问题:

当我与普通用户 - c ## b连接时,我无法通过使用c ## a来记录创建的PDBTEST中的表。

尽管如此,我已经为PDBTEST分配了用户c ## a和c ## b的权利。

对于普通用户c ## b,还有其他方法可以访问PDBTEST吗?

我正在遵循的步骤:

以sysdba身份连接

1>创建了两个用户c ## a和c ## b(container = ALL)

2 - ;授予所有权限的公共角色:c ## role(container = ALL)

3>为用户分配了c ##角色:c ## a和c ## b(container = ALL)

4>创建PDB:PDBTEST

更改会话并设置容器= PDBTEST

5个授予用户两个c ##角色:在PDBTEST中使用c ## a和c ## b

6个连接c ## a(不是sysdba)

更改会话并设置容器= PDBTEST

7个创建表并插入记录:TestTable

8是氢。用c ## b(而不是sysdba)连接

更改会话并设置容器= PDBTEST

在连接c ## b ..

后,我无法访问表'TestTable'

更多,如果我使用c ## a连接,我可以访问插入的记录。

1 个答案:

答案 0 :(得分:0)

您忘记了对表名的限定(您没有指定架构名称)。这与非pdb数据库没什么不同。如果您定义了同义词,则可以使其工作。

此外,set container仅用于管理目的,不应用于用户访问。对于用户访问,您应该创建专用服务。