none
SQL Server ユーザ単位のログ取得方法 RRS feed

  • 質問

  • SQL Server において ユーザ単位での操作レベルのログを参照したく、いろいろ調査をしているのですが、どのような操作をすればよいのかわかりません。

    具体的に見たいログは…どのユーザが、いつ、どのデータの項目を、どういった操作を行った…というイメージです。

    このようなログを参照することはできるのでしょうか?

    管理しているサーバの DBMS が SQL Server 2000 ~ 2008 ですので、「SQL Server 2000」「SQL Server 2005」「SQL Server 2008」についての参照方法がわかれば大変ありがたいです。
    (もし古いバージョンについて、不明な場合は「SQL Server 2008」だけでも教えていただけると助かります)

    参考に対象サーバの各OSとDBMSを記載します。
    サーバ①:Windows Server 2000 / SQL Server 2000
    サーバ②:Windows Server 2003 R2 / SQL Server 2005 Standard Edition
    サーバ③:Windows Server 2008 R2 / SQL Server 2008 R2 Standard Edition

    もしわかるかたがいらっしゃったら、ぜひご教授いただきたく、よろしくお願いいたします。
    2012年8月28日 6:44

回答

  • >> 具体的に見たいログは…どのユーザが、いつ、どのデータの項目を、どういった操作を行った…というイメージです。

    いわゆる操作ログですね。SQL Serverの場合(他もそうだと思うのですが)、ロギングを構成しない限りこういった詳細なログは保存されません。
    で、具体的な方法ですが、SQL Server 2008以降の場合、「SQL Server Audit」という機能で賄うことができます。
    下記リンク先に詳しい情報が載せられていましたのでご参照下さい。

    http://d.hatena.ne.jp/matu_tak/20100212/1265915736

    なお、それ以前の場合、Keiichi Oumiさんもおっしゃっているようにトリガを使うか、外部ツールを導入する必要があると思います。

    • 回答の候補に設定 佐伯玲 2012年9月3日 2:33
    • 回答としてマーク 佐伯玲 2012年9月6日 5:59
    2012年8月28日 9:39
  • こんにちは。

    ・プロファイルを取り続ける
    ・アクセス動作をすべてストアド経由にしてログを取る
    ・トリガーでもなんかできるかも・・・
    ・専用の製品を買う(あるのかな・・)

    くらいしか思いつきません。

    • 回答の候補に設定 佐伯玲 2012年9月3日 2:33
    • 回答としてマーク 佐伯玲 2012年9月6日 5:58
    2012年8月28日 8:17
  • こんにちは。
    皆様いろいろご意見ありがとうございました。
    結局、以下の理由のため、外部ツールを利用する事にしました。

    ・「SQL Server Audit」は SQL Server 2008 R2 Enterprise Editionしか使えない。
     → Enterprise Editionを購入する機会がない。

    ・「SQL Server Audit」の利用方法が難しく、操作に時間がかかる。
     → そこまで時間をかけられない。

    ・検討した外部ツールの機能が理想的であったため。
     →SQL Server 2000 ~ 2008に対応している
     →http://www.vivouac.co.jp/sarasa/index.html
    • 回答としてマーク Mariko1099 2012年9月12日 8:08
    2012年9月12日 8:08

すべての返信

  • こんにちは。

    ・プロファイルを取り続ける
    ・アクセス動作をすべてストアド経由にしてログを取る
    ・トリガーでもなんかできるかも・・・
    ・専用の製品を買う(あるのかな・・)

    くらいしか思いつきません。

    • 回答の候補に設定 佐伯玲 2012年9月3日 2:33
    • 回答としてマーク 佐伯玲 2012年9月6日 5:58
    2012年8月28日 8:17
  • >> 具体的に見たいログは…どのユーザが、いつ、どのデータの項目を、どういった操作を行った…というイメージです。

    いわゆる操作ログですね。SQL Serverの場合(他もそうだと思うのですが)、ロギングを構成しない限りこういった詳細なログは保存されません。
    で、具体的な方法ですが、SQL Server 2008以降の場合、「SQL Server Audit」という機能で賄うことができます。
    下記リンク先に詳しい情報が載せられていましたのでご参照下さい。

    http://d.hatena.ne.jp/matu_tak/20100212/1265915736

    なお、それ以前の場合、Keiichi Oumiさんもおっしゃっているようにトリガを使うか、外部ツールを導入する必要があると思います。

    • 回答の候補に設定 佐伯玲 2012年9月3日 2:33
    • 回答としてマーク 佐伯玲 2012年9月6日 5:59
    2012年8月28日 9:39
  • Keiichi Oumiさま

    こんにちは。参考意見ありがとうございます。
    みっと様のご意見にある「SQL Server Audit」を構成する準備をしております。
    しかし Enterprise Edition じゃないと使えないらしく、Enterprise Edition をインストールしてテストできるような適用機器を社内で探しています。
    簡単に参照できるものではないみたいですね。。。
    2012年8月28日 10:02
  • みっと様

    こんにちは。参考意見ありがとうございます。
    実は「SQL Server Audit」を構成できるよう、機材を準備しているところでした。
    Enterprise Editionでないと使えないそうで、準備に時間がかかりそうです。
    やはり、SQL Server 2005 以前は、トリガか、外部ツールというかたちになりそうですね。。

    2012年8月28日 10:02
  • こんにちは。

    Audit ってログイン・ログアウトだけの監査かと思い込んでました orz

    調べてみなくては。

    2012年8月29日 2:42
  • こんにちは、Mariko1099 さん
    フォーラムオペレータの佐伯 玲 です。

    その後の状況は如何でしょうか?
    まだ確認中かもしれませんがスレッドがたってから少々時間がたってしまっているので
    勝手ながら私のほうで参考になると思われる返信に一旦「回答としてマーク」をさせて頂きました。

    確認をされた結果など追加の情報がありましたら是非ご返信下さいませ。

    今後ともMSDNフォーラムを宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 佐伯 玲

    2012年9月6日 5:58
  • こんにちは。
    皆様いろいろご意見ありがとうございました。
    結局、以下の理由のため、外部ツールを利用する事にしました。

    ・「SQL Server Audit」は SQL Server 2008 R2 Enterprise Editionしか使えない。
     → Enterprise Editionを購入する機会がない。

    ・「SQL Server Audit」の利用方法が難しく、操作に時間がかかる。
     → そこまで時間をかけられない。

    ・検討した外部ツールの機能が理想的であったため。
     →SQL Server 2000 ~ 2008に対応している
     →http://www.vivouac.co.jp/sarasa/index.html
    • 回答としてマーク Mariko1099 2012年9月12日 8:08
    2012年9月12日 8:08