0

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

考虑以下场景:

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

我面临问题:

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

不过,我已经为用户 c##a 和 c##b 分配了 PDBTEST 中的权限。

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

我正在遵循的步骤:

以 sysdba 身份连接

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

2> 授予所有权限的通用角色:c##role (container = ALL)

3> 将 c##role 分配给两个用户:c##a 和 c##b (container = ALL)

4> 创建 PDB : PDBTEST

更改会话并设置容器 = PDBTEST

5> 将 c##role 授予两个用户:PDBTEST 中的 c##a 和 c##b

6> 用 c##a 连接(不是 sysdba)

更改会话并设置容器 = PDBTEST

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

8> 用 c##b 连接(不是 sysdba)

更改会话并设置容器 = PDBTEST

与 c##b 连接后,我无法访问表“TestTable”。

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

4

1 回答 1

0

您忘记限定表名(您没有指定模式名称)。这与非 pdb 数据库没有什么不同。如果你定义一个同义词,你就可以做到这一点。

此外,设置容器仅用于管理目的,绝不能用于用户访问。对于用户访问,您应该创建一个专用服务。

于 2014-02-09T09:37:34.557 回答