サーバー監査イベントをセキュリティ ログに書き込む方法
高度なセキュリティ環境では、オブジェクト アクセスを記録するイベントを書き込むのに適切な場所は Windows セキュリティ ログです。他の監査場所は、サポートされていますが、改ざんされる可能性が高くなります。
SQL Server サーバー監査を Windows セキュリティ ログに書き込むための主要な要件は 2 つあります。
オブジェクト アクセスの監査の設定は、イベントをキャプチャするように構成する必要があります。この操作に最適な方法は、オペレーティング システムによって異なります。
Windows Vista および Windows Server 2008 では、監査ポリシー ツール (auditpol.exe) を使用します。監査ポリシー プログラムは、"オブジェクト アクセスの監査" カテゴリでさまざまなサブポリシー設定を公開しています。SQL Server がオブジェクト アクセスを監査できるようにするには、application generated 設定を構成します。
以前のバージョンの Windows では、監査ポリシー ツールを使用できません。代わりに、セキュリティ ポリシー スナップイン (secpol.msc) を使用してください。監査ポリシーが使用可能な場合は、より細かい設定が可能なので、監査ポリシーの使用をお勧めします。
SQL Server サービスを実行しているアカウントは、Windows セキュリティ ログに書き込むための "セキュリティ監査の生成" 権限を持っている必要があります。既定では、LOCAL SERVICE アカウントおよび NETWORK SERVICE アカウントにこの権限があります。SQL Server がこれらのアカウントのいずれかで実行されている場合、この手順は必要ありません。
Windows の監査ポリシーは、Windows セキュリティ ログに書き込むように構成されている場合、SQL Server の監査に影響を与えることがあります。監査ポリシーが不適切に構成された場合は、イベントが失われる可能性があります。通常、Windows セキュリティ ログは、古いイベントを上書きするよう設定されます。これにより、最新のイベントが保持されます。ただし、Windows セキュリティ ログが古いイベントを上書きするよう設定されていない場合、セキュリティ ログがいっぱいになると、システムは Windows イベント 1104 (ログがいっぱいです) を発行します。このとき、次の点に注意してください。
それ以降のセキュリティ イベントは記録されません。
SQL Server はシステムがイベントをセキュリティ ログに記録できないことを検出できないため、監査イベントが失われる場合があります。
ボックス管理者によってセキュリティ ログが修復されると、ログ動作は正常に戻ります。
SQL Server コンピュータの管理者は、セキュリティ ログのローカル設定がドメイン ポリシーによって上書きされることを理解している必要があります。この場合、ドメイン ポリシーにより、サブカテゴリ設定 (auditpol /get /subcategory:"application generated") が上書きされます。SQL Server の監査対象であるイベントが記録されないことを検出する方法がない場合、これがイベントをログに記録する SQL Server の機能に影響します。
これらの設定を行うには、Windows 管理者である必要があります。
auditpol を使用して Windows のオブジェクト アクセスの監査の設定を行うには
オペレーティング システムが Windows Vista または Windows Server 2008 の場合は、管理者権限を使用してコマンド プロンプトを開きます。
[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] の順にポイントします。次に、[コマンド プロンプト] を右クリックし、[管理者として実行] をクリックします。
[ユーザー アカウント制御] ダイアログ ボックスが表示されたら、[続行] をクリックします。
次のステートメントを実行して、SQL Server からの監査を有効にします。
auditpol /set /subcategory:"application generated" /success:enable /failure:enable
コマンド プロンプト ウィンドウを閉じます。
この設定はすぐに有効になります。
secpol を使用して Windows のオブジェクト アクセスの監査の設定を行うには
Windows Vista または Windows Server 2008 より前のオペレーティング システムでは、[スタート] ボタンをクリックして、[ファイル名を指定して実行] をクリックします。
「secpol.msc」と入力し、[OK] をクリックします。[ユーザー アクセス制御] ダイアログ ボックスが表示されたら、[続行] をクリックします。
ローカル セキュリティ ポリシー ツールで、[セキュリティの設定]、[ローカル ポリシー] の順に展開し、[監査ポリシー] をクリックします。
結果ペインで、[オブジェクト アクセスの監査] をダブルクリックします。
[ローカル セキュリティの設定] タブの [次の場合に監査する] 領域で、[成功] チェック ボックスと [失敗] チェック ボックスの両方をオンにします。
[OK] をクリックします。
セキュリティ ポリシー ツールを閉じます。
この設定はすぐに有効になります。
secpol を使用して "セキュリティ監査の生成" 権限をアカウントに許可するには
任意の Windows オペレーティング システムで、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
「secpol.msc」と入力し、[OK] をクリックします。[ユーザー アクセス制御] ダイアログ ボックスが表示されたら、[続行] をクリックします。
ローカル セキュリティ ポリシー ツールで、[セキュリティの設定]、[ローカル ポリシー] の順に展開し、[ユーザー権利の割り当て] をクリックします。
結果ペインで [セキュリティ監査の生成] をダブルクリックします。
[ローカル セキュリティの設定] タブの [ユーザーまたはグループの追加] をクリックします。
[ユーザー、コンピュータ、またはグループの選択] ダイアログ ボックスで、ユーザー アカウントの名前 (domain1\user1 など) を入力して [OK] をクリックするか、[詳細設定] をクリックしてアカウントを検索します。
[OK] をクリックします。
セキュリティ ポリシー ツールを閉じます。
この設定は SQL Server の再起動時に反映されます。