问题描述
嗨,
我有Schema_1,它拥有table_1,table_2,table_3。
Schema_1使用table_1创建View_1,
Schema_1使用表2创建View_2,
Schema_1使用table_3创建View_3。
Schema_2使用View_1、View_2和View_3创建View_4。
然后,当SYSDBA向Schema_3提供以下赠款时
最后使用Schema_3做以下查询:
你有什么线索吗?
谢谢。
我有Schema_1,它拥有table_1,table_2,table_3。
Schema_1使用table_1创建View_1,
Schema_1使用表2创建View_2,
Schema_1使用table_3创建View_3。
Schema_2使用View_1、View_2和View_3创建View_4。
然后,当SYSDBA向Schema_3提供以下赠款时
GRANT SELECT ON Schema_2.View_4 TO Schema_3 WITH GRANT OPTION; GRANT SELECT ON Schema_1.View_1 TO Schema_3 WITH GRANT OPTION; GRANT SELECT ON Schema_1.View_2 TO Schema_3 WITH GRANT OPTION; GRANT SELECT ON Schema_1.View_3 TO Schema_3 WITH GRANT OPTION; GRANT SELECT ON Schema_1.table_1 TO Schema_3; GRANT SELECT ON Schema_1.table_2 TO Schema_3; GRANT SELECT ON Schema_1.table_3 TO Schema_3;
最后使用Schema_3做以下查询:
Select * from Schema_2.View_4; ERROR at line 1: ORA-01031: insufficient privileges
你有什么线索吗?
谢谢。
专家解答
你确定你已经在schema 2中创建了视图吗?这也需要对模式1中的视图/表的权限才能工作...
grant create session, create table, create view, unlimited tablespace to s1 identified by s1; grant create session, create view to s2 identified by s2; grant create session to s3 identified by s3; create table s1.t1 ( x int ); create table s1.t2 ( x int ); create table s1.t3 ( x int ); create or replace view s1.vw1 as select * from s1.t1; create or replace view s1.vw2 as select * from s1.t2; create or replace view s1.vw3 as select * from s1.t3; create or replace view s2.vw4 as select 'x' dummy from s1.vw1, s1.vw2, s1.vw3; ORA-00942: table or view does not exist select * from s2.vw4; SQL Error: ORA-00942: table or view does not exist GRANT SELECT ON S1.t1 TO S2; GRANT SELECT ON S1.t2 TO S2; GRANT SELECT ON S1.t3 TO S2; GRANT SELECT ON S1.Vw1 TO S2 WITH GRANT OPTION; GRANT SELECT ON S1.Vw2 TO S2 WITH GRANT OPTION; GRANT SELECT ON S1.Vw3 TO S2 WITH GRANT OPTION; create or replace view s2.vw4 as select 'x' dummy from s1.vw1, s1.vw2, s1.vw3; select * from s2.vw4; no rows selected GRANT SELECT ON S2.Vw4 TO S3 WITH GRANT OPTION; GRANT SELECT ON S1.Vw1 TO S3 WITH GRANT OPTION; GRANT SELECT ON S1.Vw2 TO S3 WITH GRANT OPTION; GRANT SELECT ON S1.Vw3 TO S3 WITH GRANT OPTION; GRANT SELECT ON S1.t1 TO S3; GRANT SELECT ON S1.t2 TO S3; GRANT SELECT ON S1.t3 TO S3; conn s3/s3 select * from s2.vw4; no rows selected
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




