サーバーやデータベースで最小特権原則を適用し、安全な環境を持つことは重要ですが、多くの人が高い権限を持ち、複数の人がデータやスキーマに対するタスクを実行する権限を持っている大規模環境では、これを達成することは困難です。

追加の対策として、これらのシナリオで監査ログを実装して頻繁にこれらを確認するべきです。 SQL Server 2008 以降、すべての SQL Server エディションは、サーバー レベルの監査をサポートします。 データベース監査は、SQL Server 2016 (13.x) SP1 からサポートされています。 それ以前は、データベースレベルの監査はEnterprise、Developer、Evaluationエディションに限られていました。

この投稿では、監査ログを構成して表示する方法を説明します。

Implement Audit Log

Under security, go to Audits and select New audit…

監査の名前を指定して、監査先(個人的にはファイルの場所を好む)を選択します。
希望のパラメータを選択しOKボタンをクリックします。

監査はこれで作成され、動作させるには、監査を有効にします。

サーバー レベルの監査の実装

監査の場所を作成したので、サーバー レベルで監査したいアクションを作成します。

次のウィンドウで、監査の名前を指定し(複数可)、前のステップで作成した監査を選択します。 各アクションに何が含まれているかを確認するには、Microsoft のドキュメントからこちらをご覧ください。

完了したら、[OK] をクリックして監査仕様を作成します。
この例では、監査される DBCC アクションを含めました(この投稿で後述)

監査仕様も無効に作成されているので、動作させるには画像のように有効にしてください。

NOTE: 監査仕様に変更を加える前に、まずそれを無効にする必要があります。

データベースレベル監査の実装

データベースレベル監査仕様を作成するプロセスは比較的同じですが、主な違いは、オプションが各データベースのセキュリティフォルダーの下にあることです。

データベース監査仕様フォルダーを右クリックして、次に新規データベース監査仕様・・・

データベース監査名と監査先(この例は最初のステップで作成したもの)を選択します。
監査するアクションを選択し (それぞれの説明はこちら)、[OK] をクリックします。

この例では、サンプル School データベース内の Course というテーブルに対して SELECT コマンドを監査します。

監査仕様の作成後、実行できるようにする必要があります。

注意:監査構成に変更を加える前に、最初にそれを無効にする必要があります。

監査ログをレビューする

監査を構成し実行することは作業の半分に過ぎず、積極的にログを頻繁にレビューしなければ何の価値もありません。
ログをレビューするには、SSMS と T-SQL を使用する 2 つのオプションがあります。

SSMS

Management Studio を使用してイベント ログを確認するには、作成した Audit を選択し、右クリックして [View Audit Logs] オプション

監査ログは SQL Server ログ タイプで表示されます。 このオプションを使用するために、DMF sys.T-SQL を使用します。fn_get_audit_file でファイルの場所を指定し、ファイル名には *.sqlaudit を使用してすべてのファイルを含めます。

これは、この例に使用するクエリです:

SELECT event_time,action_id,statement,database_name,server_principal_name 
FROM sys.fn_get_audit_file ('C:\tempTestAudit_*.sqlaudit',default,default);

クエリの出力はこのような感じです。

データベース仕様に取り込まれたアクションを黄色でマークしました。

この情報があれば、ミッション クリティカルなサーバーの監査を構成して、頻繁に見直すことができ、疑わしい活動で通知を受けるアラートや自動レポート ロジックも実装することが可能です。

コメントを残す

メールアドレスが公開されることはありません。