|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
Всем привет. Есть задача: требуется логировать все изменения в джобах сервера с сохранением новой версии и автора изменений. Цель: отслеживать кто и что изменил в джобе и при необходимости иметь возможность вернуть исходное значение. Как можно реализовать данный аудит? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:22 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa Всем привет. Есть задача: требуется логировать все изменения в джобах сервера с сохранением новой версии и автора изменений. Цель: отслеживать кто и что изменил в джобе и при необходимости иметь возможность вернуть исходное значение. Как можно реализовать данный аудит? была такая задачка в прошлом решил через триггеры на msdb..sysjobs* не идеально, но помогало отследить кто из ДБА что и где поменял ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:32 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa, дайте sysadmin только доверенным лицам и этот вопрос сам собой отпадёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:37 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
komrad, Допустим, я повешу триггер на таблицу, как в этом случае ловить того, кто вносит изменения? Нельзя ли отслеживать такие изменения через EVENTDATA()? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:43 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
Владислав Колосов teCa, дайте sysadmin только доверенным лицам и этот вопрос сам собой отпадёт. К сожалению, в нашем случае, каждый разработчик имеет доступ к своим джобам, а зачастую и к чужим. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:47 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa komrad, Допустим, я повешу триггер на таблицу, как в этом случае ловить того, кто вносит изменения? Нельзя ли отслеживать такие изменения через EVENTDATA()? попробуйте через original_login() а в eventdata есть spid ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:52 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa, лучше всего реорганизовать работу, разработчикам ограничить доступ, все публикуемые изменения версионировать, разработку вести в исходных кодах, а не в базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 14:05 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
У нас все бизнес джобы хранятся в отдельном проекте. Найти кто и когда поменял джоб так же просто, как и любое другое изменение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 14:48 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
msLex, Можно подробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 14:50 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa msLex, Можно подробнее? Есть SSDT проект с названием SERVICENAME_JOBS в рамках единого solution В нем каждый джоб в неком виде (добавление параметров джоб в # таблицы) хранится в отдельном файле В постдеплойменте собираются сначала все эти файлы (через цепочку :r имя_файла), а потом обработчик этих # таблиц, который сравнивает требуемое состояние джобов с тем что есть на сервере, и, при необходимости, заливает разницу через стандартные процедуры msdb. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 15:02 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
или как у msLex, или выносить джобы в отдельный оркестратор с логированием (если джобов много, 50+), или банально дать права на редактирование джобов одному-двум сотрудникам ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 15:24 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
Пошел простым путем: Навешал триггер на таблицу msdb..sysjobs, при смене версии джоба, в таблицу лога заносится новый "слепок" Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
Как бы теперь найти, кто внёс изменения? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 15:24 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa, а original_login() не подходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 15:31 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
komrad, Не знаком с данной функцией, по описанию не понял, как её применить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 15:37 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa komrad, Не знаком с данной функцией, по описанию не понял, как её применить. так и применять select original_login() ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 15:42 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
Спасибо за совет с original_login(), это то что нужно. Но столкнулся с такой проблемой. На момент изменения версии таблице sysjobs, изменения в таблице sysjobsteps еще не применились, в итоге в логе получаю половину актуальной версии джоба(sysjobs), а вторую половину предыдущей версии (sysjobsteps). Есть ли какое то решение для этой задачи? Или триггером писать первую часть, а потом дописывать остальное? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 18:01 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa, по-хорошему, это два разных события - изменение самой джобы и измемение шага джобы я бы их логировал раздельно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 18:03 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
teCa, авторЕсть ли какое то решение для этой задачи? сопоставляйте по времени выполнения. Как справедливо заметили изменения выполняются разными процедурами независимо. Можно добавлять шаг, не изменяя сам джоб, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 18:50 |
|
Логирование изменений в джобах
|
|||
---|---|---|---|
#18+
Владислав Колосов teCa, дайте sysadmin только доверенным лицам и этот вопрос сам собой отпадёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 22:00 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1684816]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 175ms |
0 / 0 |