Extended Eventsを参照してください。SQL Serverインスタンスで高度な監視と監査を設定できます。セットアップは簡単ではありませんが、選択できるオプションはたくさんあります。
更新: 下のニーズを満腹する必要があり、それはすべてのシステム上のすべてのDDLの変更を追跡するのDB(master、model、msdb、およびtempdb)ログイン'Your_Login'
によって行われ、開始とコミットの間で分割されます。
CREATE EVENT SESSION [DDL_Track] ON SERVER
ADD EVENT sqlserver.object_altered(
ACTION(sqlos.task_time,sqlserver.client_app_name,sqlserver.client_connection_id,sqlserver.client_hostname,sqlserver.database_name,sqlserver.server_instance_name,sqlserver.server_principal_name,sqlserver.sql_text,sqlserver.transaction_id,sqlserver.username)
WHERE ([sqlserver].[equal_i_sql_unicode_string]([sqlserver].[username],N'Your_Login') AND [sqlserver].[database_id]<=(4))),
ADD EVENT sqlserver.object_created(SET collect_database_name=(0)
ACTION(sqlos.task_time,sqlserver.client_app_name,sqlserver.client_connection_id,sqlserver.client_hostname,sqlserver.database_name,sqlserver.server_instance_name,sqlserver.server_principal_name,sqlserver.sql_text,sqlserver.transaction_id,sqlserver.username)
WHERE ([package0].[not_equal_uint64]([database_id],(2)) AND [sqlserver].[not_equal_i_sql_unicode_string]([sqlserver].[username],N'DBA') AND [database_id]<>(13))),
ADD EVENT sqlserver.object_deleted(SET collect_database_name=(1)
ACTION(sqlos.task_time,sqlserver.client_app_name,sqlserver.client_connection_id,sqlserver.client_hostname,sqlserver.database_name,sqlserver.server_instance_name,sqlserver.server_principal_name,sqlserver.sql_text,sqlserver.transaction_id,sqlserver.username)
WHERE ([package0].[not_equal_uint64]([database_id],(2)) AND [package0].[not_equal_i_unicode_string]([sqlserver].[username],N'DBA') AND [database_id]<>(13)))
ADD TARGET package0.event_file(SET filename=N'DDL_Track',max_file_size=(250),max_rollover_files=(1))
WITH (MAX_MEMORY=8192 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=120 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)
これは単にSSMSからファイルを開いて情報にアクセスするための単一のファイルとしてデフォルトの場所に保存された情報でイベントを作成します:
私はSQLプロファイラを使用していますが、クエリが実行されているホスト名またはクライアントネットワークアドレスを知ることができますか? –
プロファイラーは当時は良い状態でしたが、今はリタイアしました。 XEファイルを通常のテーブルとして読み込む必要がある場合は、XEリーダーを求める新しい質問が表示されますので、上記の方法で拡張イベントを使用してください。 –
TITLE:Microsoft SQL Server Management Studio 指定されたパラメータを使用してストレージを初期化できませんでした。 (Microsoft.SqlServer.XEventStorage) ログファイル名 "DDL_Track *"が無効です。ファイルが存在し、SQL Serverサービスアカウントがファイルにアクセスできることを確認します。 (Microsoft SQL Server、エラー:25718) –