ORA-01031:选择视图时权限不足

Igo*_*aya 30 oracle view

当我尝试执行包含来自不同模式的表的视图时,会抛出ORA-001031不足的权限.这些表具有创建视图的架构的执行权限.如果我执行视图的SQL语句就可以了.我错过了什么?

Igo*_*aya 36

最后我开始工作了.史蒂夫的回答是正确的,但不适用于所有情况.从第三个模式执行该视图时失败.为此,您必须添加授权选项:

GRANT选择[TABLE_NAME]至[READ_USERNAME] WITH GRANT OPTION;

这样,[READ_USERNAME]也可以将视图的select权限授予另一个模式


Ste*_*e K 19

作为表所有者,您需要将基础表上的SELECT访问权限授予正在运行SELECT语句的用户.

grant SELECT on TABLE_NAME to READ_USERNAME;
Run Code Online (Sandbox Code Playgroud)


小智 6

Q. 什么时候需要“with grant option”?

A. 当您从第三个模式执行视图时。

示例:模式 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
Run Code Online (Sandbox Code Playgroud)

典型授权:将 dsdw.view_name 上的 select 授权给 dsdw_select_role;将 dsdw_select_role 授予 fdr;

但是:fdr 从 dsdw.view_name 中获取 select count(*); 第 1 行的错误:ORA-01031:权限不足

发放补助金:

grant select on fdr.balance to dsdw with grant option;
Run Code Online (Sandbox Code Playgroud)

现在 fdr:从 dsdw.view_name 中选择 count(*);5 行