2

我的 oracle 数据库有一个用户(可以说是 SWEET)。在 SWEET 模式中,我有一个名为 AUTO_PARTS 的表。

现在,我创建了一个新用户 (SWEET_CV) 并在 SWEET 的 AUTO_PARTS 表上创建了一个视图。

CREATE SCHEMA AUTHORIZATION SWEET_CV
   CREATE VIEW SWEET_CV.new_autoparts_view 
      AS SELECT * FROM SWIFT.AUTO_PARTS WHERE PRODUCTNAME = 'ABC'
   GRANT select ON SWEET_CV.new_autoparts_view TO SWEET;

最后一个 Grant 语句给出了错误 ORA-01720:“SWEET.AUTO_PARTS”的授权选项不存在。所以我做了以下。

From SWEET account:
GRANT SELECT ON AUTO_PARTS TO SWEET_CV *WITH GRANT OPTION*
And then From SWEET_CV account:
GRANT SELECT ON SWEET_CV.new_autoparts_view TO SWEET;

两次赠款都成功了,我承诺了。

现在,当我登录 SWEET 并查询“select * from SWEET_CV.new_autoparts_view”时,将返回行。但是当我查询'select * from new_autoparts_view'时,它说表或视图不存在。你能解释一下为什么即使在我做了 GRANT 之后它也说不存在。

我想在我的 SWEET 中访问新模式的视图,而不必将其称为 newschema(dot)viewname

提前致谢

4

1 回答 1

4

我想在我的 SWEET 中访问新架构的视图,而不必将其称为

SWEET您需要在引用视图的架构中创建同义词:

create synonym sweet.new_autoparts_view for sweet_cv.new_autoparts_view;
于 2012-11-29T23:03:29.437 回答