web-dev-qa-db-ja.com

ORA-01031ビューの作成中に権限が不十分ですか?

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

誰が何が問題になるのか教えてもらえますか?ここで説明した別のスタックオーバーフローの投稿を試してみましたが、それはさまざまなスキーマに関係しています。

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

私はここに新しいので知らせてください。

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

元の質問:ビューを作成して、従業員ID、従業員名、入社日、部門番号を選択します。

私の解決策:

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

次に、データベーススキーマでCREATE VIEWコマンドを実行する権限がない可能性があります... SYSDBAアカウントにログインして、コマンドを発行します

GRANT CREATE VIEW TO <dbusername>;

ここで、<dbusername>は、CREATE VIEWコマンドへのアクセス権を付与するユーザーの名前に置き換える必要があります。

5
Arul Christo

select * from session_privsを使用して、ユーザーにVIEW作成特権があるかどうかを確認できます。

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

2
listik

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

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

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

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

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

1
Dhruv Das

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

0
Kapila