AuditObjectAccess (служба Windows)Источник: t-sql
Аудит доступа к объектам на файловых серверах - это одна из головных болей администратора. Как часто к вам вбегает взлохмаченный пользователь и в панике спрашивает, кто удалил важный файл с сетевого ресурса? Думаю, бывает… Сперва в политиках включаем Аудит на доступ к объектам ("Control Panel -> Administrative Tools - > Local Security Settings") Код события: 560 (0x0230) Тип: Аудит успехов Описание: Открытие объекта Сервер объекта: %1 Тип объекта: %2 Имя объекта: %3 Код дескриптора: %4 Код операции:{%5,%6} Код процесса: %7 Основной пользователь: %8 Основной домен: %9 Основной код входа: %10 Пользователь-клиент: %11 Домен клиента: %12 Код входа клиента: %13 Доступ %14 Привилегии %15 Нам необходимо отслеживать 15-ый параметр "Привилегии". Вот список основных значений этого параметра: На этом теории хватит. Приступаем к установке службы: 01. USE master 02. GO 03. 04. IF DB_ID( 'AuditObjectAccess' ) IS NOT NULL DROP DATABASE AuditObjectAccess 05. GO 06. 07. CREATE DATABASE AuditObjectAccess 08. GO 09. 10. USE AuditObjectAccess 11. GO 12. 13. IF OBJECT_ID ( 'Events' , 'U' ) IS NOT NULL DROP TABLE Events 14. GO 15. 16. --Таблица Аудита 17. CREATE TABLE Events 18. ( 19. id INT IDENTITY, 20. [ Index ] INT , 21. TimeGenerated DATETIME , 22. Source VARCHAR (255), 23. Category VARCHAR (255), 24. EventID VARCHAR (255), 25. UserName VARCHAR (255), 26. MachineName VARCHAR (255), 27. Message VARCHAR ( max ), 28. Mask VARCHAR ( max ), 29. DateAt DATETIME default GETDATE (), 30. HostAt VARCHAR (255) default HOST_NAME (), 31. UserAt VARCHAR (255) default ORIGINAL_LOGIN () 32. ) 33. GO 34. 35. IF OBJECT_ID ( 'AddEvent' , 'P' ) IS NOT NULL DROP PROCEDURE AddEvent 36. GO 37. 38. --Процедура на добавление новой записи-события 39. CREATE PROCEDURE AddEvent 40. ( 41. @ index INT = null , 42. @TimeGenerated DATETIME = null , 43. @Source VARCHAR (255) = null , 44. @Category VARCHAR (255) = null , 45. @EventID VARCHAR (255) = null , 46. @UserName VARCHAR (255) = null , 47. @MachineName VARCHAR (255)= null , 48. @Message VARCHAR ( max )= null , 49. @Mask VARCHAR ( max )= null 50. ) 51. 52. AS 53. 54. SET NOCOUNT ON 55. 56. INSERT INTO Events 57. ( 58. [ Index ], 59. TimeGenerated, 60. Source, 61. Category, 62. EventID, 63. UserName, 64. MachineName, 65. [Message], 66. Mask 67. ) 68. 69. SELECT 70. @ Index , 71. @TimeGenerated, 72. @Source, 73. @Category, 74. @EventID, 75. @UserName, 76. @MachineName, 77. @Message, 78. @Mask 79. 80. GO 2) Теперь создадим в реестре несколько записей для работы службы (settings.reg-файл находится в архиве вместе с ЕХЕ-шником службы): 3) Устанавливаем саму службу: |