[pgsql-jp: 34477] Re: PostgreSQL/Oracle/MySQL の機能比較

Jun Kitamura kitamura @ zoozee.jp
2004年 12月 11日 (土) 19:44:25 JST


北村です。

> > 海老原さんの例ならば、SELECT トリガで NOTIFY を発行すれば 
> > LISTEN しているアプリケーションが通知を受け取れます。(VIEW 
> > 経由での SELECT はやったことないですが、たぶん大丈夫かと)。
> 
> SELECTトリガーというのはルールで実装することを言っているのでしょうか?
> ルールは詳しくありませんが、ビューの問題に関しては確かにそれでうまくいき
> そうですね!

だと思ったのですが、[pgsql-jp: 34455] にて谷田さんがおっしゃっ
ているように
> (略)問題はnotify自体の信頼性が低いと言うことですが・・・
ということであれば、あまり期待できないですね。

私は、1つのアクション(大事な情報が更新される)といのを NOTIFY 
と LISTEN デーモン(と呼べるほどのものじゃないですが(笑))を使っ
て、携帯電話にメールを送って通達させていたので、これで「監査
(監視)」は可能だと思っていたのです。
複数のアクションを監視するとなると、ログのほうが確実かも。

> 監査ログテーブルを用意しておいて、そこに必要な情報をINSERTしてしまうとか
> もうまくできますかね?

ですね。各アクションに対してトリガを使えば、ある程度は目的に
即したログをとれると思います。
PL/pgSQL を使ったトリガならば、 RAISE INFO などを用いて、キー
ワード付きのログを出力できるので、フィルタも簡単にかけられる
ようになるかと思います。
syslog は重いという話なので、エラーを標準出力にリダイレクト
し、かつ、DJB の daemontools である multilog なんかを使えば、
まさに「指定のアクションを目的別ログに出力する」事は可能だと
思います。他にもログ用のプログラムはあるでしょうから、それで
も別に構わないです。あくまで例として。
daemontools
http://tools.qmail.jp/daemontools/

いずれにせよ、PostgreSQL 標準ツールで「監査」があるわけじゃ
ないのですが。




pgsql-jp メーリングリストの案内