• 締切済み

Oracleのアクセス権制御について教えてください

Oracleのアクセス権について教えてください。 下図にあるようにTEST1というユーザがSERVE1というORACLEインスタンスにアクセスできるがTEST2というユーザはSERVE2にアクセスできないようにしたいです。 ユーザ   ソフト   サーバ  インスタンス test1    A     SERVE1    ADB test2         SERVE2     BDB Oracleでtest1はアクセスできないという制限を設けることはできました。 しかし、あるORACLE検索ソフトはサーバで動くので、全てサーバのユーザ名でアクセスされるため制限ができません。 お手数ですが解決策を教えてください。

  • Oracle
  • 回答数3
  • ありがとう数6

みんなの回答

回答No.3

TQFTOOL/NEですか・・ 今のところ使ったことがないので、判りませんが・・ TQFNEO/sv側の設定で出来ませんかね? (TQFNEO/svを2系統に分離するとかも含めて)

access012345
質問者

お礼

返信ありがとうございました。 TQFNEO/sv側の設定では何もできないようです。

回答No.2

オラクルとしては、セッションユーザが同じである以上、区別ができません。 当然検索ソフト側では、ユーザの区別が出来ているのでしょうから、 ・検索ソフト側でアクセスしないように頑張る。 ・検索ソフトのユーザ情報を、何らかの方法でオラクルインスタンスへ連携させ  オラクルインスタンスでその情報を基に制限する仕組みを用意する。(自作する) の2つが考えられるかと思います。 オラクルのバージョンやエディションによって、出来る出来ないが変わるので、 つっこんだ説明は割愛します。

access012345
質問者

お礼

k_o_r_o_c_h_a_nさん、早速の回答ありがとうございました。 すみません、説明に誤りがありました。 「test2」は「BDB」にアクセスできるが 「test1」は「ADB」にアクセスできないという制御でした。 私もk_o_r_o_c_h_a_nさんのご意見しかないのかな と思っています。 今のところソフト側ではアクセス制御はできないよう ですし、オラクルインスタンスへの連携方法が 見つからない状況です。 Oracleのログオントリガーで「test1」というユーザ名が V$SESSSIONに登録されたらエラーでアクセスさせない というテストを行いました。 検索ソフトは「TQFTOOL/NE」です。 SQL/Plusでは「test1」は「BDB」にアクセスできない という制限ができましたが。 TQFTOOL/NEではアクセスできてしまいました。 「V$SESSION」で確認したところ、サーバ側のユーザ名が 表示されました。 おそらくPCのユーザがTQFTOOL/NEにアクセスしたあとは TQFTOOL/NE側がオラクルにアクセスするものと考えられます。

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

>あるORACLE検索ソフトはサーバで動くので、全てサーバのユーザ名でアクセスされるため制限ができません。 その検索ソフトが判らないと何とも言えませんが、Oracleに付いてる管理系のユーティリティでも、ユーザ名とパスワード入れるので、アプリケーションレベルのソフトでは、全てサーバのユーザでアクセス出来る物が有るとは思えませんが。

access012345
質問者

お礼

t_nojiriさん、早速の回答ありがとうございました。 検索ソフトは「TQFTOOL/NE」です。 (説明が不充分ですみません・・・) Oracleのログオントリガーで「test1」というユーザ名が V$SESSSIONに登録されたらエラーでアクセスさせない というテストを行いました。 SQL/Plusでは「test1」は「BDB」にアクセスできない という制限ができましたが。 TQFTOOL/NEではアクセスできてしまいました。 「V$SESSION」で確認したところ、サーバ側のユーザ名が 表示されました。 おそらくPCのユーザがTQFTOOL/NEにアクセスしたあとは TQFTOOL/NE側がオラクルにアクセスするものと考えられます。

関連するQ&A

  • AccessからORACLEへのリンク設定について教えてください

    初心者ですが仕事でORACLEとAccessを使っています。 ORACLEのメンテナンスのため、ORACLEのテーブルにAccessからリンクを設定しようとしましたが、下記エラーになります。 「システムで予約されているエラー(-7778)です。このエラーへのメッセージはありません。」 Accessの方はORACLEクライアントがインストールしているパソコンで使っていて、そのパソコンの業務ソフトは問題なく動いてORACLEからデータを出し入れしています。  使用しているソフトはORACLE7.3.4とAccess2000です。 この場合の対処方法をご存じの方がいらっしゃいましたらお教えください。よろしくお願いします。

  • HP-UXのOracleへのSQL

    ORACLEインスタンスへ接続する場合、ローカル接続なら環境変数でORACLE_SIDを登録しておけば、sqlplus user/passwd でつながりますが、ネットワーク接続でおなじようなことはできないでしょうか。 つまりは、sqlplus user/passwd@DB名 でなく、なにかしら変数を設定して、 sqlplus user/passwd のみでネットワーク経由で他のサーバのインスタンスに接続できるでしょうか??

  • オラクルの初期化について

    OSはwindows2000serveを使用し、Oracle8.1.6をいれてます。 SQL*Plusを使ってデータベースにアクセスしようとしましたが、 ORA-01034 とエラーがでてオラクルを初期化して再試行しないといけないらしいのですが、どういう作業をすればよいのかわかりません。 初心者ですのでわかりやすくお願いします。

  • AccessからOracleへのODBC接続

    現在、Oracleで作成したデータベースに接続して 検索するソフトを、Accessで作成してあります。 Oracleに接続をするのに、 ODBCを使用しているのですが、 最初依頼があったときは「Oracle8」のときだったので、 「Oracle8」のみ接続可能なプログラムが組んであり、 「Oracle10g」の入っているPCでは接続できないという問題が発生しました。 そこで、「Oracle8」と「Oracle10g」とも接続出来るように プログラムを書き換えたのですが、 現在は「Oracle11g」が最新になっていると思うので、 ゆくゆくはそれに対応しなければならないなあ、と思っています。 そうすると、Oracleがバージョンアップするたびに、 ソフトのプログラムを書き換えなくてはならなくなり、 効率的ではないな…と思いまして… Oracleのバージョンが違っていても、 自分のPCのOracleのバージョンを自動認識して、 AccessからOracleへ接続する方法はあるのでしょうか? ちなみに現在は、TableDefsコレクションを使用して、 まず、Oracle8で繋ぎにいき、それでエラーが起これば Oracle10gで繋ぎにいく、という処理を行っています。 【参考コード】 dim db as object dim tdf as object set db = CurrentDb set tdf = TableDefs("テーブル名") tdf.Connect = "(※テーブルのプロパティの説明のところに入る文)" tbf.RefreshLink (※ここが8と10gで違ってくる) よろしくお願いします。

  • オラクルに詳しい方、教えてください

    Windows2000サーバにOracle8iをインストールしています。 クライアントからサーバに対して オラクルのインスタンスとリスナーが起動していることを確認したい場合、 oracle.exe と listener.exe が起動していることを確認できれば 「OK」と言えますか? 「データベースに接続できる状態」と言えるでしょうか? 毎日の定例作業として行う予定です。 あまりオラクルに詳しくないので、 知識のある方、ぜひ教えてください。

  • AccessからODBCでOracleに接続する際の環境

    AccessからODBCを使用してOracleに接続する際の環境について教えてください。 想定しているクライアントとサーバの環境は以下となるのですが、 >クライアント:WindowsXP + Access2003 >サーバ: Solaris + Oracle10g 上記以外にクライアント側にインストールする必要があるソフトウェアを教えてください。 ODBCドライバはWindowsXPに標準で入っていると思うので、 あとはOracle関係のソフト(Oracle Net Services?)だと思うのですが、 最低限どれが必要なのかが正確に知りたいです。 よろしくお願い致します。

  • ORACLEについて

    ORACLEでDBを構築しようと思っているのですが、 ORACLE8とORACLE8iとはどう違うのですか? 今手元にその二つのソフトがあるのですがどちらを使えばよいかわかりません。ちなみにwebサーバーでシステムを行おうと計画をしています。 よろしくおねがいします。

  • AccessからOracleへの外部結合

    AccessのテーブルからOracleのテーブルに外部結合した場合、遅くなるのはなぜでしょうか。対策はありますか。 AccessのテーブルからOracleのテーブルとほぼ同じ内容のサーバー上のAccessのテーブルに外部結合しても遅くない(数秒)ですがOracleのテーブルに外部結合すると30秒以上かかります。Accessの結合元のテーブル約3万件、Orcaleのテーブル約25万件です。 Oracleのテーブルに内部結合した場合は数秒です。 Access2000/Oracle8.0.5です。

  • Oracleインスタンスへの接続制限について

    1台のサーバにOracleのインスタンス(A、B)を複数立てた環境において、 クライアント1からはAインスタンスのみ利用可能、クライアント2からは Bインスタンスのみ利用可能とさせる事は可能でしょうか? (クライアント2の利用者にAインスタンスのインスタンス名、  ユーザ名、パスワードが漏れてしまっても、Aインスタンスに  接続できないように制限できればと思っています。) 宜しくお願いします。

  • SQL ServerにOracleのリンクサーバー

    SQL Server 2000にOracle 11g R2のインスタンスをリンクサーバーとして追加したいです 以下の通りSQL Server 2000にOracle 11g R2のインスタンスをリンクサーバーとして追加することは 可能でしょうか。 <サーバー1> OS:Windows Server 2003 Standard Edition DBMS:SQL Server 2000 設定内容: (1)Oracle 11g R2のクライアントをインストール (2)サーバー2のインスタンスへのリンクサーバーを設定し、テーブルを参照(更新はしない) <サーバー2> OS:Windows Server 2008 R2 Standard Edition DBMS:Oracle 11g R2 設定内容:あるインスタンスにサーバー1が参照するためのテーブルを準備 また、さらに別のクライアントPCからMS Access 2010でサーバー1のリンクサーバーに対して パススルークエリを発行したりAccessにリンクテーブルを作成することは可能でしょうか。 SQL Server向けのSQL文が使えますでしょうか。