私の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をやった後も存在しない理由を教えてください。
newschema(dot)viewnameとして参照せずに、SWEETで新しいスキーマのビューにアクセスしたい
前もって感謝します