已授予Oracle SELECT但仍无法跨用户访问表

时间:2013-10-31 10:23:03

标签: oracle permissions roles grant

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

用户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问题?


编辑我刚刚在另一台服务器上尝试了这个,它运行正常(即按预期方式)。不完全确定这里发生了什么,但我认为这可能与我的一些错误有关......因此,我投票决定关闭这个问题。

1 个答案:

答案 0 :(得分:0)

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