1つのサーバーによって出力された監査ファイルが、そのサーバーのCONTROLSERVERアクセスなしで読み取れるかどうかを調べようとしています。MSDNのドキュメントは、これが可能であることを示唆しています。
データベースエンジンがファイルに書き込んでいるときでも、他のWindowsユーザーは、権限があれば監査ファイルを読み取ることができます。データベースエンジンは、読み取り操作を妨げる排他ロックを取得しません。
そしてまた:
監査管理者または監査リーダーのみがアクセスできるSQLServerExpressのインスタンスなど、SQLServerの別のインスタンスから監査レポートを生成することをお勧めします。レポートにデータベースエンジンの別のインスタンスを使用することで、権限のないユーザーが監査レコードにアクセスするのを防ぐことができます。
要するに、私はこれを行うことができますか?
- ファイル共有に出力するようにProdDBで監査を構成する
- 監査リーダーにファイル共有への読み取りアクセス権を与える
- 別のDBからsys.fn_get_audit_file('fileshare *')を使用して、監査レポートを作成します。
[説明]qの重要な部分は、監査情報の作成元のDBに対する管理者アクセス権がなくても、別のDBからsys.fn_get_audit_fileを使用してファイルにアクセスできるかどうかです。そうすれば、DB管理者アクセス権を持つDBAとは別に、ファイルシステムアクセス権を持つ監査リーダーを持つことができます。最初にこれを明確にしなかったことをお詫びします。
あなたの答えに関して言えば、このクエリは、元のDBのDBAではない誰かによって、無関係のSQL Mgmt Studio / DBから実行できますか?
SELECT
event_time, action_id, session_id, object_id, class_type,
database_principal_name, database_name, object_name, statement
FROM
sys.fn_get_audit_file('\\Temp\Audit\*',NULL,NULL);