SQL Serverの監査機能を理解して操作ログとセキュリティを可視化しよう
SQL Serverには、ユーザー操作やデータベースへのアクセスを記録できる
監査(Audit)機能が用意されています。
監査を正しく設定することで、「誰が・いつ・何をしたのか」を後から追跡でき、
不正操作の検知や内部統制、セキュリティ事故の調査に役立ちます。
この記事では、SQL Server Auditの基本的な仕組みから、 実際の設定手順、実務での使いどころまでを整理して解説します。
目次
SQL Serverの監査(Audit)とは
SQL Server Auditは、データベースやサーバーに対する操作を イベントとして記録する仕組みです。
対象となる操作の例は次のとおりです。
- ログイン・ログアウト
- データベースへのアクセス
- テーブルやビューへのSELECT/UPDATE/DELETE
- 権限変更や設定変更
アプリケーションログとは異なり、 SQL Server自身が記録する公式な監査ログである点が特徴です。
監査機能の構成要素
SQL Serverの監査は、次の3要素で構成されています。
| 要素 | 役割 |
|---|---|
| 監査(Audit) | ログの出力先や形式を定義 |
| サーバー監査仕様 | サーバーレベルの操作を定義 |
| データベース監査仕様 | データベース内の操作を定義 |
まず「監査(Audit)」を作成し、 その上で「何を記録するか」を仕様として設定します。
監査ログの出力先の種類
監査ログの出力先は、用途に応じて選択できます。
| 出力先 | 特徴 |
|---|---|
| ファイル | 最も一般的。容量管理がしやすい |
| Windows セキュリティログ | OSと統合した監査が可能 |
| Windows アプリケーションログ | アプリケーションログとまとめて管理 |
実務ではファイル出力が選ばれるケースが多いです。
監査の作成と有効化手順
ここではT-SQLによる基本的な作成例を示します。
CREATE SERVER AUDIT SampleAudit
TO FILE
(
FILEPATH = 'C:\AuditLogs\'
);
ALTER SERVER AUDIT SampleAudit
WITH (STATE = ON);
この操作で、監査ログの「入れ物」が作成されます。
監査仕様(Audit Specification)の設定
次に、どの操作を記録するかを定義します。
CREATE SERVER AUDIT SPECIFICATION SampleAuditSpec
FOR SERVER AUDIT SampleAudit
ADD (FAILED_LOGIN_GROUP),
ADD (SUCCESSFUL_LOGIN_GROUP);
ALTER SERVER AUDIT SPECIFICATION SampleAuditSpec
WITH (STATE = ON);
この例では、ログイン成功・失敗を監査対象にしています。
監査ログの確認方法
ファイル出力された監査ログは、 専用の関数で読み取ります。
SELECT *
FROM sys.fn_get_audit_file(
'C:\AuditLogs\*',
NULL,
NULL
);
これにより、実際に記録された操作内容を確認できます。
実務での活用ポイント
- 最初から広範囲を監査しない(性能影響を考慮)
- 重要テーブルや権限操作に絞って設定
- ログの保存期間と容量を事前に設計
- 定期的にログを確認・分析する運用を決める
監査は「設定して終わり」ではなく、 運用設計まで含めて初めて意味を持つ機能です。
まとめ
- SQL Server Auditは操作履歴を記録する公式な監査機能
- 監査・監査仕様を組み合わせて利用する
- ログインやデータ操作の追跡に有効
- 性能影響と運用設計を考慮した設定が重要
セキュリティや内部統制が求められる環境では、 SQL Serverの監査機能は非常に強力な武器になります。

0 件のコメント:
コメントを投稿