2016-09-17 6 views
1

アプリケーションAは、WebサービスYを介してデータベースXと通信しています。サービスYは、データベースXのデータに対する挿入、更新、および削除操作を可能にします。 XからサービスYへ 開発者Qは、デバイスIDまたはIPを含むデータベースXのテーブルのエントリと更新に関する情報を記録するデータベーストリガを作成したいとします。開発者Qは、サービスYを介してデータベースXとの確立された接続を介していくつかのデバイス識別情報にアクセスできますか? できない場合は回避策がありますか?データ収集アプリケーションからのデータベース内のデバイスIDのロギング

答えて

0

短い答えはい。どのようにもう少し関与しています。 Webサービスがどんな言語で書かれているのか、それを高レベルに保ち、インプリメンテーションにとらわれない方法に焦点を当てています。

デバイス情報、Webクライアント情報、IPアドレス(信頼できませんが)、認証ID(匿名アクセスでない場合)など、Webサービスをコードするために使用されるほとんどの言語が要求情報をキャプチャします。 Webサービスセッションに関連するすべての要求データを書き込むデータベースにセッションテーブルを作成します。次に、各セッションのキーを派生させます。最後に、DMLを実行する各表にセッション・キーの列を追加します。別のアプローチは、運用テーブル(すでに所有しているもの)と一致するログテーブルを持つことです。操作テーブルにはセッションキー列はありませんが、ロギングテーブルにはありません。アクティビティをログに記録するには他にもいくつかの方法がありますが、これはポイントを示すためのものです。

別の方法として、Webサービスセッション情報に追加する派生接続クラスを作成することです。これはデータベースコマンドの実行時にアクセスできます。通常はコマンドオブジェクトを介して実行され、トリガを記述するのではなく、プログラムによってロギングを行います。

データベースで直接DMLを実行するとトリガーが発生する可能性があるため、Webサービスではなく別のインタフェースを使用するため、後者の方がトリガーよりも適しているようです。この場合、最初に要求情報はありません。

+0

あなたのご意見ありがとうございました。私は今、私が何をする必要があるのか​​明確なイメージを持っていると思います。 –

関連する問題