7

異なるテーブルを含むビューを作成しようとすると、次のエラーが発生します: 行 1 のエラー: ORA-01031 権限が不十分です。

何が問題なのか誰か教えてください。ここで言及されている別のスタックオーバーフローの投稿に従ってみましたが、それは異なるスキーマに関係しています。

ORA-01031: ビューを選択する際の権限が不十分です

私はここで新しいので教えてください。

私のクエリは次のとおりです。

元の質問: 従業員 ID、従業員名、雇用日、および部門番号を選択するビューを作成します。

私の解決策:

CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;
4

6 に答える 6

2

VIEWを使用して、ユーザーが作成権限を持っているかどうかを確認できますselect * from session_privs

ビューを作成できるようにするには、ビューを作成するユーザーに、使用するSELECTすべてのオブジェクトに対する権限と、前述のCREATE VIEW権限が付与されている必要があることに注意してください。USER_TAB_PRIVSエラーが発生したユーザーにクエリを実行して確認することもできます。

于 2013-04-29T09:39:32.547 に答える
1

SQL開発者で上記のクエリを実行したいとき、ビューやトリガー、パッケージ、プロシージャなどの他のオラクルオブジェクトスキーマを作成するための十分な権限がなかったため、問題に直面しました。 : ORA-01031 権限が不十分です。」したがって、これらすべてのクエリとプログラムを実行するには、すべての権限が必要でした。問題を解決するために、次の手順を実行しました。

  1. 「scott」というユーザー名でログインしたので、私の名前は「Dhruv」ではなく「scott」です。私の目標は、すべての権限を私、つまりユーザー 'scott' に付与することでした。
  2. そのためには、DBA としてデータベースに入力する必要があります。では、質問です!DBA としてログインする方法。このために、コマンド プロンプトを開き、次の手順に従ってデータベースに sysdba としてログインしました。

a)ウィンドウ実行で、cmdと入力してコマンドプロンプトを開きました。sqlplus /nolog と入力しました。これは、必要な資格情報を提供せずにログインしたことを意味します。
b) 基礎となる O/S に対して自分自身を認証し、DBA としてデータベースに入力しました。そのために、コマンドプロンプトに次のように入力しました:connect / as sysdba; c) データベースに DBA ユーザーが存在する場合、そのユーザーを評価しました。そのために、私は次のように入力しました: select name from V$database; d) このコマンドの後に進みます。最後に、次のコマンドを入力して、自分自身 (scott) に sql 開発者でビューを作成することを許可しました: grant create view to scott; e) 最後に、次のように入力して、すべての権限を自分自身に付与しました。

コマンドプロンプトのスナップショット:添付しました。

最後に、ビューを実行して作成しました。

于 2016-12-06T16:05:47.940 に答える
-1

ユーザーに select any table 権限を付与する必要があります。その後、ビューは正常にコンパイルされます。すべてのオブジェクトに対してユーザーに select を明示的に付与する必要はありません。

于 2016-02-04T16:04:34.363 に答える