【SQL Server】【Windows】セキュリティイベントログにログイン失敗のログを記録する
イベントログの「セキュリティ」にSQL Serverログインの失敗を記録する際の手順です。
以下参考のURLを実際に実行してみたものになります。
https://msdn.microsoft.com/ja-jp/library/cc645889.aspx
まず、auditpol.exeで成功・失敗の監査を有効にします。
ただし、上記URL記載のコマンドを実行してもエラーとなりますので、一部修正する必要があります。
auditpol.exe /set /subcategory:”Application Generated” /failure:enable /success:enable
私の環境では、サブカテゴリ名が日本語になっており、コマンド内でも日本語にする必要がありました。
auditpol.exe /set /subcategory:”生成されたアプリケーション” /failure:enable /success:enable
次に"セキュリティ監査の生成"権限をSQL Serverの起動ユーザに許可します。
「ファイル名を指定して実行」で"gpedit.msc"を入力します。
ローカル セキュリティ ポリシー ツールで、 [セキュリティの設定]、 [ローカル ポリシー]の順に展開し、 [ユーザー権利の割り当て]をクリックして、右ペインに表示される[セキュリティ監査の生成]をダブルクリックします。
[ローカル セキュリティの設定] タブの [ユーザーまたはグループの追加]をクリックします。
追加するユーザアカウントとしてSQL Serverの起動ユーザを選択します。
設定が完了したらSQL Serverに反映させるためにインスタンスを再起動します。
次にSQL Server側で監査を追加します。監査ログをイベントログのセキュリティに記録するようにします。
今回はSQL Serverのインスタンス全体を監査対象とするサーバーレベルの監視を作成してみます。
オブジェクトエクスプローラのインスタンス名配下のツリー直下にある「監査」を選択し、右クリック、「新しい監査」を選択します。
「監査の出力先」をセキュリティログにします。
尚、監査ログはイベントログのアプリケーション、もしくは別ファイルに記録することもできます。
作成したら有効化しておきます。
どのイベントを監査ログとして記録するかという仕様は、"サーバー監査の仕様"にて設定します。
オブジェクトエクスプローラのインスタンス名配下のツリー直下にある「サーバー監査の仕様」を選択し、右クリック、「新しいサーバー監査の仕様」を選択します。
ログイン失敗を監査するために、監査アクションの種類で「FAILED_LOGIN_GROUP」を選択します。
ここでは、他にも以下のように監査仕様を選べます。
作成が完了したらこちらも有効にしておきます。
実際にログイン失敗が記録されているか確認をしてみます。
監査ログの表示は、SSMS上であれば作成した監査を右クリックして、「監査ログの表示」を選択します。
ユーザIDの誤りによるログ
パスワード誤りによるログ
実際にイベントログを確認してみると次のように記録できていることがわかります。
ユーザIDの誤りによるログ
パスワード誤りによるログ
データベースレベルを監査対象とする監査仕様は別途こちらから設定できますので、個別DB毎の監査仕様はこちらで定義するとよいでしょう