こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

OracleでAccess接続のみを拒否したい

OracleでAccessからの接続だけをリスナーで拒否したいです。
できるだけパフォーマンスに影響しない方法を模索しています。
何か良い方法は無いでしょうか。

リスナーログからAccessを判別してセッションを切断する方法は考えたのですが、
接続の度にリスナーログを読み込みするのはパフォーマンスに影響しそうなのでNGかなと
個人的には思ってます><

投稿日時 - 2011-04-19 14:23:41

QNo.6679200

すぐに回答ほしいです

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

#1 のmuyoshidです。

補足&訂正です。
access のProgram 名は、access.exe じゃなくてMSACCESS.EXE でした。
自セッションのProgram 列の取得は、こんな感じでできます。
select lower(program) from v$session where audsid=userenv('SESSIONID');

後は、raise_application_error で例外を発生させればOk です。

投稿日時 - 2011-04-20 12:21:13

お礼

おかげさまでやりたい事が実現できました!
適切な回答いただきありがとうございました。

投稿日時 - 2011-04-20 18:24:28

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんにちわ。

> 何か良い方法は無いでしょうか。
Database Event Trigger で対応可能です。
After Logon Trigger を作ってTrigger の中で自セッションのv$session.program
がaccess.exe だった時に例外を発生させてセッションを終了させて下さい。
※ 確か、SYSDBA 権限を持ったユーザでは、例外を発生させてもエラーにならなかった
  と思います。

http://www.oracle.com/technetwork/jp/content/develop-102024-ja.html#app
詳細は上記URL から、アプリケーション開発者ガイド 基礎編 を確認して下さい。

投稿日時 - 2011-04-19 21:47:30

あなたにオススメの質問