当我尝试执行包含来自不同模式的表的视图时,抛出ORA-001031权限不足。这些表对创建视图的架构具有execute权限。如果我执行视图的SQL语句,它就可以工作。我遗漏了什么?
发布于 2008-09-26 16:53:33
作为表所有者,您需要向运行SELECT语句的用户授予对底层表的SELECT访问权限。
grant SELECT on TABLE_NAME to READ_USERNAME;发布于 2008-09-26 18:47:16
最后我让它起作用了。Steve的答案是正确的,但并不适用于所有情况。当从第三个模式执行该视图时,它会失败。为此,您必须添加授权选项:
GRANT SELECT ON [TABLE_NAME] TO [READ_USERNAME] WITH GRANT OPTION;这样,[READ_USERNAME]还可以将视图的select权限授予另一个模式
发布于 2009-07-15 18:27:12
问:什么时候需要“带授权选项”?
A.当您从第三个模式执行视图时。
示例: schema DSDSW有一个名为view_name的视图
a) that view selects from a table in another schema (FDR.balance)
b) a third shema X_WORK tries to select from that view典型的授权:将dsdw.view_name上的select授权给dsdw_select_role;将dsdw_select_role授权给罗斯福;
但是: fdr从dsdw.view_name获取select count(*);第1行错误: ORA-01031:权限不足
发放奖助金:
grant select on fdr.balance to dsdw with grant option;现在fdr: select count(*) from dsdw.view_name;5行
https://stackoverflow.com/questions/140643
复制相似问题