7

dbaアカウントとしてログインしており、User1のスキーマにビューを作成したいのですが、User2のスキーマからデータを選択しています。

次のクエリを使用しました。

CREATE OR REPLACE VIEW User1.NewView (Column1) AS
SELECT DISTINCT Column1 FROM User2.Table

次のエラーが発生します。

SQL Error: ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

これを解決するには、User2.TableのUser1への選択アクセスを許可する必要がありました。私はすでにdbaとしてログインしているので、アクセスを許可せずにこれを行う方法はありますか?

4

3 に答える 3

11

はい、別のスキーマのオブジェクトへのアクセスを明示的に許可する必要があります(常にそうする必要があります)。

GRANT SELECT ON user2.table TO user1

「dbaアカウント」(SYS、私が想定している)としてログインしていますが、CREATEステートメントは特にuser1スキーマ用です。

于 2010-11-02T21:43:58.410 に答える
8

フォースビューの作成または置換を行うことができます...

これにより、特権がないにもかかわらずビューが作成されますが、特権が付与されない限り、ビューは使用できません。これは、特権が後で付与される場合に役立つ可能性のあるソリューションです(たとえば、自動ビルドスクリプトなど)。

于 2010-11-02T22:39:15.693 に答える
0

おそらく、テーブルまたはビューにアクセスできないためです

オブジェクトに対する権限をユーザーに照会します。

于 2013-12-05T11:11:25.387 に答える