SQL — создать таблицу для хранения активности пользователей SQL

Я хотел бы создать таблицу SQL, которая хранит/захватывает доступ пользователей или действия для конкретной базы данных.

Например, таблица, в которой есть запись для имени пользователя, доступа к базе данных/запроса, времени активности и т. д. каждый раз, когда пользователь входит на сервер и запрашивает конкретную базу данных.

Я знаю, что где-то есть файл журнала .txt, который я бы поискал, но есть ли более простой способ сделать это автоматически?

Как мне это сделать?

Заранее спасибо!


person viv_acious    schedule 29.01.2013    source источник


Ответы (2)


Вы можете фиксировать активность входа в журнал ошибок SQL Server (включите аудит входа для «как неудачных, так и успешных входов»):

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

Или создав ТРИГГЕР ВХОДА и используя его для входа в определенную таблицу. .

Однако, поскольку для операторов SELECT нет триггеров, для захвата всех запросов потребуются довольно навязчивые методы, такие как трассировка на стороне сервера или Аудит SQL Server.

person Aaron Bertrand    schedule 29.01.2013

Прочтите об триггерах входа в SQL Server.

person cha    schedule 29.01.2013
comment
Это помогает при входе в систему, но как насчет запросов? - person Aaron Bertrand; 29.01.2013