• ベストアンサー

ORACLE権限について

お世話になります。 環境 ORA9.2.0.1.0(win) 一つのDBに複数のユーザを作成しております。 各ユーザのテーブル構成は全て一緒です。 各ユーザに同じ構造の「在庫テーブル」が存在しております。 DB_LINKを使用しないで(可能であればシノニムも使用したくありませんが。。。)、各ユーザ全ての在庫テーブルをUNIONしたVIEWを作成したいと思っておりますが、作成しようとすると、 「ORA-01031: 権限が不足しています。」 となります。 どのような権限を与えたらよいか教えてください。 よろしくお願いいたします。

  • 2ch
  • お礼率72% (16/22)
  • Oracle
  • 回答数1
  • ありがとう数11

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ > どのような権限を与えたらよいか教えてください。 方法として2つあります。  1. 各在庫テーブルのSELECT権限をユーザに付与する。   Grant select on 所有者1.在庫 to 参照ユーザ   Grant select on 所有者2.在庫 to 参照ユーザ   Grant select on 所有者3.在庫 to 参照ユーザ   Grant select on 所有者4.在庫 to 参照ユーザ  2. SELECT ANY TABLE システム権限を付与する。   Grant select any table to 参照ユーザ 詳しくは、マニュアルを参照して下さい。

参考URL:
http://otn.oracle.co.jp/
2ch
質問者

お礼

すっごく困っておりました。 ありがとうございました

関連するQ&A

  • テーブルの権限 またはユーザの権限

    お世話になっております。 サーバーをいじること自体がはじめてで迷走しています; どうかご助言お願いします >< SQL Serverにおいて ユーザ「9999」がいるとします。 またDB「AA」「BB」「CC」「DD」があり、各DBに「9999」はログインできるようになっています。 各DB内にはそれぞれ複数のテーブルが存在します。 そして各テーブルでは「9999」に 「SELECT、INSERT、UPDATE、DELETE」の権限を与えてあります  ←今ココです そこで質問なのですが、 (1)ユーザ「9999」に与えてあるSELECT等の権限を確認するSQL文は存在しますでしょうか。   →「9999」がどのDBのどのテーブルにどの権限を持っているのか、など。 (2)もしくはDBごとに、どのユーザがどのテーブルに対してどの権限を持っているかを   確認するSQL文はありますでしょうか。   →テーブルごとでも結構です。 「権限を確認するSQLはあるよ」と 先輩に言われ、必死に探しておりますがOracleのものしか見つかりません。。。 とりあえず「9999」がそのテーブルに対して権限を持っているということを 証明したいのです。  ※テーブルのプロパティで権限付与を行ったため、    同じ方法で確認するのは意味がないと言われてしまいました どうかよろしくおねがいします。

  • 同一筺体にOracle 10g XE とOracle Clientを入れて動かしたい

    ■実現したいこと■ Oracle Database 10g Express Edition (Universal) Oracle Database 10g Express Client を同一筺体にインストールして、コマンドプロンプトからsqlplusを起動してDBを操作する ■行った事■ 「http://127.0.0.1:8080/apex/」の管理者画面からデータベース・ユーザー"HR"(サンプルユーザ)のアカウントステータスを 「ロック済」→「ロック解除済」にした。 ※HRユーザの権限は以下の通りです。 ユーザー権限 ロール:  CONNECT   ○ RESOURCE  ○ DBA     ○ 直接付与されたシステム権限: CREATE DATABASE LINK ○ CREATE MATERIALIZED VIEW× CREATE PROCEDURE    × CREATE PUBLIC SYNONYM × CREATE ROLE     × CREATE SEQUENCE     × CREATE SYNONYM     ○ CREATE TABLE × CREATE TRIGGER × CREATE TYPE × CREATE VIEW × ■環境■ Windows Vista SP1 上記のようなやってコマンドプロンプトから sqlpulsを起動して、ユーザID(HR)とパスワードを入力した所 「ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました」 というエラーが出てしまいました。 何か足りない操作があるんでしょうか。それとも元々同一筺体にて使用できないんでしょうか。 どなたかご教授下さい。 よろしくお願い致します。

  • MySQLでの権限付与について

    MySQLでrootの使用をなるべく避けるため DB作成、ユーザ作成などは違うユーザを作って行いたいですが、 権限を与えることはrootでしかできないと聞きました。 本当にMySQL内でgrant権限を持つユーザを作成するのはできないでしょうか?

    • ベストアンサー
    • MySQL
  • Access Oracle環境の切替方法

    ODBCにてOracleに接続を行うAccessを作成し、ユーザに使用頂いております。 2つのサーバがあり、それぞれOracleの本番環境、テスト環境としています。 (双方に作成したテーブルのDB名、スキーマ名は同一です) 開発用端末である自分の端末には、テスト用サーバへ接続するためのtnsnames.oraが、またユーザの端末には、本番用サーバへ接続するためのtnsnames.oraがセットされています。 自分の端末にて開発・テストが済んだら、ユーザの端末にAccessファイルを配布。 しかしこの度、テスト用サーバが撤去されることになりまして、、、これまで本番環境として使用していたサーバにテスト環境を同居させた場合、Accessファイルを変更する事なく 本番⇔テスト を切り替えるようテスト環境を構築する方法はありますか? テーブルはリンクして使用しております。DB名やスキーマ名を別名で作成をと考えましたが、Access内で指定されるのでNGですよね。。。 よろしくお願いします。

  • データベースリンクについて

    サーバーAからサーバーBにDB_LINKを作成し、サーバーBのテーブル(参照権限付与済)を参照しにいったところ、『ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。』となってしまいました。 またサーバーCにDB_LINKを作成したら何のエラーも発生しませんでした。 ちなみにSQLPLUSからサーバーBにログインは可能で、前述のテーブルも参照できました。しかしSQLPLUSからDBLINKを介しての参照は同じエラーになってしまいます。 ちなみに固定ユーザーでプライベート接続でリンクを作成しました。 相手サーバーにユーザーもIDも登録済みです。 いろいろ調べてみたのですが、全然わかりません。 ご存知の方がいらっしゃったら教えて下さい。 宜しくお願いします。

  • VIEWしか読み取れないユーザの作成方法について

    SQL Server 2008R2/2012でのVIEWのアクセス権限の付与について パケージのシステムを構築しており、ユーザにVIEWの読み取り権限だけを公開したいと考えています。 ユーザは、SQL Server Management StudioでそのVIEWに対してSELECTだけできるようにしたいのですが、やってみるとVIEWに対しての権限の他に元となるテーブルのアクセス権限も必要となり、見せたくないテーブルとそのテーブルの列が見えてしまいます。 なんとか、DBへの特定のログインユーザだけVIEWに対して読み取り(SELECT)ができようなユーザが作れないでしょうか? アドバイスをお願いします。

  • oracle8.1.7について

    現在の状態です。 oracle8.1.7のサーバーインストール後、使用するユーザーを作成し、その後ユーザーが使用するスキーマの設定まで行いました。 その後でスキーマ領域にsqlplusを使用してCREATESQL文を発行したんですが「作成したスキーマ領域に表の権限がありません」というエラーメッセージが消えません。 表の権限ってどのようにつければよいですか?

  • mysql 権限設定

    ラピッドサイトのmysqlを利用しています。 javaからのリモート接続を試していますが繋がらなかったので原因をつめていったところ DB:mysqlのTABLE:userに権限を接続する必要がある?事がわかりました。 ただmysqlにrootの権限で接続してshowを行ってもDB:mysqlは存在しません。 後考えられることはrootの情報がuserテーブルに入っていないくらいしか思いつきません どなたかご解答おねがいします。

  • 緊急!!MySQLの権限が回復できません

    うみません、会社のデータベースサーバーにて 昨日外部からのアタックを受けたため 一度MySQLを無効にしようと思い、phpMydminからユーザー権限を全て削除してしまいました。 このやり方にも問題があったのですが、今の問題はそのMySQLのルートのパスワードが分からないので権限を回復することができず会社のサービスが完全に停止してしまっています。 確認したいところはまず、ユーザー権限を削除した場合全てのテーブルが消えているのかどうか? ルートのパスワードを再設定したばあい、既存のデータベースに何か影響があるのか? ルート権限からユーザーの権限を回復した場合もとの状態に戻るのか? 最悪の場合テーブルのデータを抜き出して、DBの再構築をすることで対処するしかないのか?その場合テーブルのデータが格納されているファイルの所在はどこになるのか?(サーバーOSはFreeBSDです) 以上の項目に関してどなたか知恵を貸していただければと思います。 よろしくお願いします

  • DBへの権限付与について

    MySQLで、ユーザーを作成しGRANT文でDBへの権限を 付与したのですが、DBにアクセスできません。 原因がわかりましたら、教えていただけますでしょうか。 まず、rootユーザーでユーザーを作成し、DBへの参照権限を付与。 >GRANT ALL ON TESTDB.* TO USER01@localhost IDENTIFIED BY 'passwd'; rootユーザーで権限を確認。 >SHOW GRANTS FOR USER01@localhost; GRANT USAGE ON *.* TO 'USER01'@'localhost' GRANT ALL PRIVILEGES ON `TESTDB`.* TO 'USER01'@'localhost' ユーザー:USER01 でログインし、DBの参照を確認。 > SHOW DATABASES; information_schema SHOW DATABASES の結果に、TESTDB が出てくるはずと 思うのですが、なぜ表示されないのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL