当我尝试执行包含来自不同模式的表的视图时,会抛出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 行
| 归档时间: |
|
| 查看次数: |
192842 次 |
| 最近记录: |