QA@IT

SQL Serverの各ユーザの最終ログイン日付を取得したい

6060 PV

SQL Server 2008 Standard Editionを使用している者です。
このたび、データベースに登録されたユーザ(インスタンスへのログイン)の
利用頻度の統計と取ることになりまして、各ユーザの最終ログイン日付を取得したいと
考えているのですが、このような関数は存在しないのでしょうか。
近いものにLOGINPROPERTYというセキュリティ関数を見つけたのですが、
返り値のBadPasswordCount、BadPasswordTimeはいずれも正しくないパスワードでの
ログイン試行回数なので、残念ながら利用できませんでした。
お手数ですが、本件、解決方法を教えて下さい。

回答

ご丁寧な回答、誠にありがとうございます。
ご紹介頂いたログオントリガが目的に合いそうなので、使ってみようと思います。
今後ともどうぞよろしくお願いいたします。

編集 履歴 (0)

関数まで含めて既定の機能で存在するのかはわかりませんが

たとえばサーバーのプロパティでログインの監査をつけると、エラーログに出力されるようになるそうです。
http://technet.microsoft.com/ja-jp/library/ms188470(v=sql.100).aspx
http://technet.microsoft.com/ja-jp/library/ms175850(v=sql.100).aspx

また、ログオントリガを利用すれば任意のテーブルやファイルに情報を格納する処理が作成できるでしょう。
http://technet.microsoft.com/ja-jp/library/bb326598(v=sql.100).aspx

短期間であれば トレースログを利用して、EventClass 14 (Audit Login), 15 (Audit Logoff)
トレースするという手もありそうですね。
http://blogs.msdn.com/b/jpsql/archive/2011/01/26/sql.aspx
http://okwave.jp/qa/q6691711.html
http://technet.microsoft.com/ja-jp/library/ms190362.aspx

そのほか SQLServer 2008 からはAUDIT機能があるそうですが、Enterprise Editionでないと使えません。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。