TOPサーバ構築・運用> PowerGres + securityの機能 - その2
PowerGres
PowerGresのすべて

第3回:セキュリティを強化した「PowerGres + security」

著者:SRA OSS  山口 大樹   2007/9/13
前のページ  1  2  3
PowerGres + securityの機能 - その2

   最初のページで説明した通り、PowerGres + securityでは、ベースとなるPostgreSQL認証版によりIEC/ISO15408認証取得のために機能追加が行われています。ここでは2つ目の機能追加「ログ監査機能」について説明します。

auditスキーマとログテーブル

   PostgreSQLには、データベースが出力したログをファイルに記録する機能が標準で実装されています。デフォルトではログファイルはデータベース領域のpg_logディレクトリに保存されています。

   PowerGres + securityでは、このログをデータベースに保管するように設定します。作業としてログを格納するためのスキーマとオブジェクトを以下のように作成します。

スキーマとオブジェクトの作成
図2:スキーマとオブジェクトの作成
(画像をクリックすると別ウィンドウに拡大図を表示します)

  • connectionsテーブル
  • connections_last_dayビュー
  • messagesテーブル
  • processed_filesテーブル
  • process_all_logs関数
  • process_log関数

表4:auditスキーマ内に作成されるオブジェクト

   ログファイルに記録されたメッセージをテーブルに登録するには、process_all_logs関数を実行します。この関数はC言語で作成されており、pg_logディレクトリ内のログファイルを読み込み、その内容をconnectionsテーブルとmessagesテーブルに登録します。

   connectionsテーブルには接続のログが登録されています。「誰がどのデータベースに接続した」という情報はもちろん、接続から切断までの時間やセッションIDを閲覧することができます。24時間以内の接続に限って閲覧する場合は、connections_last_dayビューを使います(図3)。

connectionsテーブルを検索した結果の一例
図3:connectionsテーブルを検索した結果の一例
(画像をクリックすると別ウィンドウに拡大図を表示します)

   まだ切断されていない接続(接続時間を格納するdurationなど)に関しては空欄となります。

   messagesテーブルには、ログファイル内に記録される通常のメッセージが登録されます。ログファイルから時刻・ユーザ名などが抽出され、それぞれ対応するカラムに格納されるので、SQL文を使った条件検索などが容易に実行できるようになっています。

messagesテーブルを検索した結果の一例(注2)
図4:messagesテーブルを検索した結果の一例(注2)
(画像をクリックすると別ウィンドウに拡大図を表示します)

※注2: 1行に収めるために、ログレベルなど途中のカラムを省略しています。

   この機能を使うと「特定のユーザだけのログを取得したい」や「4日前の14:00から14:15までのログを取得したい」といった情報の取得も簡単にできます。この機能によってログの解析が容易になり、ログの監査に役立つでしょう。


まとめ

   今回はPowerGresファミリの新商品「PowerGres + security」について、PostgreSQLに追加された機能を中心に解説しました。データベースは特に重要なデータを扱うことが多いと思われます。PowerGres + securityを利用して、よりセキュアなデータベースのシステムを構築し、サポートで安心した運用を実施してみてはいかがでしょうか。

前のページ  1  2  3


SRA OSS, Inc. 山口 大樹
著者プロフィール
SRA OSS, Inc.  山口 大樹
日本支社 技術部
2004年株式会社SRA入社。2005年SRA OSS, Inc.設立時に出向。入社以来、PostgreSQL関連業務に関わっており、サポート、トレーニング、認定試験、コンサルティングなど幅広い業務を担当。


INDEX
第3回:セキュリティを強化した「PowerGres + security」
  PowerGres + securityとは
  PowerGres + securityの機能 - その1
PowerGres + securityの機能 - その2