0

特定のデータベースに対するユーザー アクセスまたはアクティビティを格納/キャプチャする SQL テーブルを作成したいと考えています。

たとえば、ユーザーがサーバーにログインして特定のデータベースにクエリを実行するたびに、ユーザー名、アクセス/クエリされたデータベース、アクティビティ時間などのエントリを持つテーブル。

どこかに.txtログファイルがあることは知っていますが、それを自動的に行う簡単な方法はありますか?

どうすればこれを行うことができますか?

前もって感謝します!

4

2 に答える 2

2

You can capture login activity in the SQL Server error log (turn on Login Auditing for "Both failed and successful Logins"):

USE [master];
GO
EXEC xp_instance_regwrite 
  N'HKEY_LOCAL_MACHINE', 
  N'Software\Microsoft\MSSQLServer\MSSQLServer', 
  N'AuditLevel', 
  REG_DWORD, 
  3;

Or by creating a LOGON TRIGGER and using that to log to a specific table.

However since there are no triggers on SELECT statements, capturing all queries would require pretty intrusive methods such as a server-side trace or SQL Server Audit.

于 2013-01-29T04:14:56.787 に答える
1

SQL Server のログオン トリガーについて読む

于 2013-01-29T04:11:29.523 に答える