1

任何人都可以看到这有什么问题:

用户 ABC:

create table def.something (
  id number,
  ref number references def.anotherTable(id)
);

create role ROUser;

grant select on def.something to ROUser;

grant ROUser to ghi;

用户 DEF:

select * from something;
...
X rows returned

用户 GHI:

select * from def.something;
ORA-00942: table or view does not exist

问题是否存在 GHI 无法访问的外键def.something


编辑我刚刚在另一台服务器上再次尝试过,它工作正常(即,如预期的那样)。不完全确定这里发生了什么,但我认为这可能与我的一些错误有关......因此,我投票结束这个问题。

4

1 回答 1

0

您很可能SELECT在 PL/SQL 块中运行该语句?在 PL/SQL中,无法识别通过角色授予的特权。尝试SELECT在该表上添加直接权限,看看它是否有效。

于 2013-10-31T10:41:08.663 回答