アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

A 回答 (2件)

こんにちわ。



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

http://www.oracle.com/technetwork/jp/content/dev …
詳細は上記URL から、アプリケーション開発者ガイド 基礎編 を確認して下さい。
    • good
    • 0

#1 のmuyoshidです。



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

後は、raise_application_error で例外を発生させればOk です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/20 18:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!