小物SEのメモ帳

IT関係の試したことや調べたことの備忘録

【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

f:id:utiowa:20170326001834p:plain


私の環境では、サブカテゴリ名が日本語になっており、コマンド内でも日本語にする必要がありました。

auditpol.exe /set /subcategory:”生成されたアプリケーション” /failure:enable /success:enable

f:id:utiowa:20170326001848p:plain


次に"セキュリティ監査の生成"権限をSQL Serverの起動ユーザに許可します。
「ファイル名を指定して実行」で"gpedit.msc"を入力します。
f:id:utiowa:20170326002046p:plain

ローカル セキュリティ ポリシー ツールで、 [セキュリティの設定]、 [ローカル ポリシー]の順に展開し、 [ユーザー権利の割り当て]をクリックして、右ペインに表示される[セキュリティ監査の生成]をダブルクリックします。
f:id:utiowa:20170326002240p:plain

[ローカル セキュリティの設定] タブの [ユーザーまたはグループの追加]をクリックします。
f:id:utiowa:20170326002306p:plain

追加するユーザアカウントとしてSQL Serverの起動ユーザを選択します。
f:id:utiowa:20170326002311p:plain

設定が完了したらSQL Serverに反映させるためにインスタンスを再起動します。


次にSQL Server側で監査を追加します。監査ログをイベントログのセキュリティに記録するようにします。
今回はSQL Serverインスタンス全体を監査対象とするサーバーレベルの監視を作成してみます。

オブジェクトエクスプローラインスタンス名配下のツリー直下にある「監査」を選択し、右クリック、「新しい監査」を選択します。
f:id:utiowa:20170326002521p:plain

「監査の出力先」をセキュリティログにします。
f:id:utiowa:20170326002533p:plain

尚、監査ログはイベントログのアプリケーション、もしくは別ファイルに記録することもできます。
f:id:utiowa:20170326002549p:plain

作成したら有効化しておきます。
f:id:utiowa:20170326002650p:plain

どのイベントを監査ログとして記録するかという仕様は、"サーバー監査の仕様"にて設定します。

オブジェクトエクスプローラインスタンス名配下のツリー直下にある「サーバー監査の仕様」を選択し、右クリック、「新しいサーバー監査の仕様」を選択します。
f:id:utiowa:20170326002932p:plain

ログイン失敗を監査するために、監査アクションの種類で「FAILED_LOGIN_GROUP」を選択します。f:id:utiowa:20170326003141p:plain

ここでは、他にも以下のように監査仕様を選べます。
f:id:utiowa:20170326003215p:plain

作成が完了したらこちらも有効にしておきます。


実際にログイン失敗が記録されているか確認をしてみます。
監査ログの表示は、SSMS上であれば作成した監査を右クリックして、「監査ログの表示」を選択します。
f:id:utiowa:20170326003457p:plain

ユーザIDの誤りによるログ
f:id:utiowa:20170326004122p:plain

パスワード誤りによるログ
f:id:utiowa:20170326004134p:plain


実際にイベントログを確認してみると次のように記録できていることがわかります。

ユーザIDの誤りによるログ
f:id:utiowa:20170326003645p:plain

パスワード誤りによるログ
f:id:utiowa:20170326003702p:plain


データベースレベルを監査対象とする監査仕様は別途こちらから設定できますので、個別DB毎の監査仕様はこちらで定義するとよいでしょう

f:id:utiowa:20170326002907p:plain