88900


# 背景・やりたい事

現在SQL Serverの監査機能を使用して監査ログ(FAILED_LOGIN_GROUP, SUCCESSFUL_LOGIN_GROUP,
LOGOUT_GROUP)を出力しているのですが、出力項目が多すぎてログサイズが肥大化してしまっています。  
そこで、監査ログに出力されるデータの、出力カラムをいくつか指定することで、そのカラムのみを出力対象とする(あるいは出力対象から外す)ようにしたいと考えています。  
上記のようなことは可能なのでしょうか？

例えば、以下ドキュメント:  
<https://docs.microsoft.com/ja-jp/sql/relational-databases/system-
functions/sys-fn-get-audit-file-transact-sql?view=sql-server-ver15>  
にて示されている項目一覧のうち、ログイン・ログアウトの時刻とそれが成功したかどうかさえ分かれば良いので`event_time`と`action_id`のみを出力対象とする、と言った具合です。  
(あくまで例示のため、出力対象の妥当性についてはここでは無視してください)

# 調べたこと

調査の結果、以下のMicrosoftドキュメント:  
<https://docs.microsoft.com/ja-jp/sql/relational-
databases/security/auditing/create-a-server-audit-and-server-audit-
specification?view=sql-server-ver15>  
にある通り、フィルターに何か条件を設定してやれば上手いことできる **かもしれない** というところまでは分かっています。  
フィルターを使ったログ容量削減の方法としては、出力行を削減する(監査対象のユーザーを絞り込む)という考えもあるかと思いますが、それと併用してさらに容量を削減したい、という意図になります。

また、以下のドキュメント:  
<https://docs.microsoft.com/ja-jp/sql/t-sql/statements/create-server-audit-
transact-sql?view=sql-server-ver15>  
にあるように、SQL文としては`WHERE`句を用いて条件指定をしているようなので、あるいは今回の質問は  
**WHERE句内で表内の特定のカラムを指定して出力対象とする(あるいは出力対象から外す)ことはできますか？**  
と言い換えることが出来るかもしれません。  
※ **言い換えできないかもしれません。** SQL Serverの内部仕様には明るくないため、間違っている、といった場合は上の一文は無視してください。


CC BY-SA 4.0
2022-05-18T00:57:09.193
88889
2022-05-18T12:03:44.747
2022-05-18T12:03:44.747
52673
52673
question
sql-server
SQL Server監査ログが出力するログのカラムを指定したい


ご認識のとおり、カラムを指定しての制限はできないですね、、、


CC BY-SA 4.0
2022-05-18T06:49:38.687
88900
2022-05-18T06:49:38.687
52687
88889
answer