MSDN マガジン > Home > 発行物 > 2008 > May >  ツールボックス: データベース監査ログ、Joel on Software、コード配布資料など
ツールボックス
データベース監査ログ、Joel on Software、コード配布資料など
Scott Mitchell

データベースの変更を監査する
Microsoft® SQL Server® などのデータベース システムは、長い間トリガをサポートしていました。トリガは開発者が作成するスクリプトであり、INSERT、UPDATE、DELETE の各ステートメントの実行後またはそれらの代わりに自動的に動作します。トリガは、INSERT、UPDATE、または DELETE によって変更されたデータにアクセスできるため、データの変更を監査ログに記録するには絶好のツールです。監査ログは、データが変更された日時と変更を行ったユーザーを追跡するため、機密データや重要データを扱うアプリケーションには欠かせないものです。実際、多くの財務アプリケーションや医療アプリケーションについては監査ログの利用が法律で義務付けられています。さらに、監査ログは例外が発生したときのデータベースの状態を調べる手段になるため、デバッグにも利用できます。
もちろん、カスタム監査ログを設計、構築、保守することはできますが、そのためには多大な時間と労力が必要です。通常は、Krell Software の OmniAudit Version 1.11 などのサードパーティ製品を使用する方が費用効率は高くなります。
OmniAudit では、ポイントとクリックだけと言ってもよいほど簡単な方法で監査ログを実装できます。マネージャ インターフェイスでデータベースを指定し、監査の対象とするテーブルと列を選択します。監査対象の列ごとに、列の値を監査ログに記録するタイミングとして、その値が変更されたときと、関連する行の他の列の値が変更されたときのいずれかを指定できます。さらに、OmniAudit が関連するテーブルのデータも記録するように設定できます。
OmniAudit で監査ログを設定すると、必要なログ テーブルおよびトリガの作成スクリプトが構築されます。これらのテーブルおよびトリガがデータベース上に作成されると、指定したテーブルまたは列の変更が自動的かつ透過的に監査ログに記録されます。監査ログには、変更の日時や変更を行ったユーザー、ワークステーション、およびアプリケーションの名前など、必要な情報がすべて含まれています。
変更が頻繁に行われると、監査ログはすぐに管理が困難なサイズにまで拡大するため、OmniAudit では一定の日数または週数を過ぎた古い監査ログ エントリを定期的に削除するように設定できます。ログを表示するには、OmniAudit Log Viewer を使用します。このログ ビューアは各種のフィルタ機能を備えています。表示するログ エントリをテーブルまたは列、ユーザー、日付範囲、または実行された操作の種類で絞り込むことができます。複数のテーブル、列、またはユーザーにフィルタを適用できないなど、フィルタの設定には多少制限がありますが、ほとんどのユーザーのニーズには十分対応できます。OmniAudit Log Viewer の特に優れた点は、SQL の知識が不要であることです。そのため、管理者や非技術系の担当者でも監査ログを調べることができます。
価格 : 1 ユーザー ライセンス - 479 ドル
OmniAudit Log Viewer でログを表示する  (画像を拡大するには、ここをクリックします)

注目のブログ
失敗するソフトウェア プロジェクトが多いのはなぜでしょうか。開発者チームが成功するかどうかを迅速に判定するための 12 の要因とは何でしょうか。ソフトウェア開発分野の人員に対する教育の最良の方法とはどのようなものでしょうか。また、そうした教育方法は、今日の大学での教育内容と比較した場合、どのように見ることができるでしょうか。Joel Spolsky のブログ Joel on Software は、こうしたトピックを取り上げています。Joel は、さまざまな環境で、プログラミング、設計、管理に携わってきました。彼は、Microsoft で Excel® チームのプログラム マネージャとしてソフトウェア キャリアを開始しました。2000 年、彼は有名なプロジェクト管理アプリケーション FogBugz を提供する FogCreek Software を共同設立します。
Joel は、「管理者の第 1 の責務は抽象層を作成して開発者に提供することです。つまり、プログラマがプログラミングだけに専念できるようにインフラストラクチャを構築することです」と述べています。開発者は、プログラミングに集中でき、静かで明るく設備が充実した作業環境が与えられたときに、最大限の力を発揮します。管理者の仕事は、能力と意欲のある開発者を探し、集中力を妨げる要因を取り除き、チームを成功へと導く環境を整えることです。
もちろん、能力と集中力のあるプログラマを集めたチームであっても、ソフトウェア プロジェクトの成功が保証されるわけではありません。しかし、そのようなチームが重要な要素の 1 つであることは確かです。そのほかに、プロジェクトの成否を決する業務および人員面の要因もあります。Joel はそれらを 12 のチェックポイントにまとめました。皆さんの会社の方針や慣行を「Joel テスト : よりよいコードを書くための 12 ステップ」に記載された項目と比較してみてください。
Joel on Software は、ソフトウェア業界全体を展望した記事が大部分を占めますが、開発者向けの記事も豊富です。Joel は、ユーザー インターフェイスの設計、テスト、展開についてさまざまな考えを持っています。定期的に更新されるブログ (30 か国語以上に翻訳されています) に加え、ソフトウェア ビジネスから Microsoft .NET Framework の開発まで多岐にわたるトピックをテーマとするディスカッション ボードもあります。
Joel Spolsky のブログ  (画像を拡大するには、ここをクリックします)

コードを印刷およびエクスポートする
最近、あるユーザー グループを前にオープン ソース ASP.NET アプリケーションをテーマとして講演を行う機会があり、そのアプリケーションのソース コードを資料として参加者に配布することが必要になりました。Visual Studio® であれば、1 つのファイルの内容を印刷するのは簡単です。ファイルを開き、[ファイル] メニューの [印刷] を選択するだけです。しかし、多数のファイルがある場合、一度に 1 ファイルずつ印刷するのは面倒です。さらに、Visual Studio には印刷オプションがほとんどありません。
これより優れた方法として、StarPrint の VSNETcodePrint があります。VSNETcodePrint は Visual Studio アドインで、Visual Basic®、C#、J#、および ASP.NET のコードやマークアップを印刷できます。このアドインをインストールすると、Visual Studio IDE のメニュー項目からアクセスできるようになります。VSNETcodePrint には、印刷機能だけでなく、コードを RTF または PDF ドキュメントや Web ページにエクスポートする機能もあります。
ボタンをクリックするだけで、ソリューションの内容全体を印刷またはエクスポートすることができます。ファイルを 1 つずつ開く必要はありません。同様に 1 回のクリックだけで、プロジェクト、名前空間、クラス、または選択したテキスト全体の内容を印刷またはエクスポートすることもできます。
VSNETCodePrint には、用紙の方向 (縦または横)、複数の列、カスタム ページ ヘッダーおよびフッター、行番号、構文の書式設定、接続線、行間隔など、各種の印刷オプションが用意されています。
接続線を使用すると、各ステートメント ブロックにどのコード行が属するかをはっきりと示すことができます。行番号は、次のプロシージャやページの開始位置など、特定のポイントでリセットされるように設定できます。カバー シートを追加するオプション、印刷またはエクスポートされた内容に透かしを適用するオプション、プリントアウトにスクリーンショットやイメージ ファイルを挿入するオプションもあります。
StarPrint は、VSNETCodePrint に加え、Microsoft SQL Server からデータベース オブジェクトを印刷およびエクスポートできる類似の製品も提供しています。
価格 : 59 ドル

推薦図書
Microsoft ASP.NET AJAX は AJAX 対応の Web アプリケーションの構築プロセスを簡略化するフレームワークで、クライアントとサーバーの間でシームレスに発生する必要のある大量の低レベル対話の上位に多数の強力な高レベル API を提供します。ASP.NET AJAX フレームワークに関する本は、低レベルと高レベルの詳細をバランスよく扱っている必要があります。このフレームワークの Web コントロールやクライアント側およびサーバー側の API に関する記述より、XMLHttpRequest オブジェクトや JSON などのクライアント側の問題に関する記述にスペースが割かれていることも必要です。このフレームワークをバランスの取れた視点でわかりやすく説明した良書が、Alessandro Gallo、David Barkol、Rama Krishna Vavilala 共著の『ASP.NET AJAX In Action』です。
『ASP.NET AJAX In Action』は、低レベルの詳細から始まり、徐々に高レベルの詳細へと進んでいます。この本は 4 部構成になっています。第 1 部では、AJAX の基本概念、ASP.NET AJAX フレームワーク、および UpdatePanel コントロールを扱っています。ASP.NET AJAX フレームワークのクライアント側およびサーバー側の機能を使用した、簡単でありながら興味深い例が豊富に盛り込まれています。第 1 部には、AJAX 開発者にとってきわめて重要な JavaScript の概念、構文、および機能を扱ったすばらしい章もあります。
第 2 部では、より高度な AJAX シナリオに踏み込み、UpdatePanel やクライアント側の機能について深く掘り下げています。また、多くの一般的な AJAX シナリオに対応する追加の Web コントロール セットである AJAX Control Toolkit にも触れています。
第 3 部では、ASP.NET AJAX の将来性に目を向け、近々発表される AJAX やクライアント側の機能をいち早く紹介しています。最後の第 4 部では、一般的な AJAX パターンの実装方法に焦点を当てています。
『ASP.NET AJAX In Action』は Web 開発の初心者を対象としたものではなく、読者が ASP.NET アプリケーションの構築方法をある程度熟知していることを前提としていますが、クライアント側の開発や AJAX 開発の経験がなくても読みこなせる内容となっています。
価格 : 44.99 ドル
  (画像を拡大するには、ここをクリックします)

ご意見やご質問は、Scott まで英語でお送りください。 toolsmm@microsoft.com.


Scott Mitchell は、多数の著書を出版し、4GuysFromRolla.com の創設者でもあります。また、1998 年からは Microsoft MVP としてマイクロソフトの Web テクノロジ開発に携わっています。現在は、フリーのコンサルタント、トレーナー、およびライターとして活躍しています。Scott の連絡先は、Mitchell@4guysfromrolla.com です。また、ScottOnWriting.NET にブログを公開しています。

Page view tracker