|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
Триггеры я пишу вручную. Делаю один триггер на все операции. Код: plsql 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.
Сам лог расчитан на логирование данных где первичный ключ таблицы имеет смысл в физическом мире и виден в интерфейсе. В первую очередь это справочники. Код: plsql 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. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101.
Для некоторых случаев где нет доступного первичного ключа или он составной или он не имеет отношения к идентификации физического объекта - сделаны другие, специализированные таблицы и триггера логов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 04:04 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
fraks, у тебя первичный ключ может меняться? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 04:49 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
kdv, поэтому спасибо разработчикам за гетерогенные запросы - можно логи хранить в соседней базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 07:44 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
чччДfraks, у тебя первичный ключ может меняться? Код: sql 1.
Нет, не может. Но в жизни разное бывает, и не дело триггера логирования упрощать ситуацию. Его дело - записать в лог любое изменившееся поле, и ПК для него - просто частный случай поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 08:24 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11kdv, поэтому спасибо разработчикам за гетерогенные запросы - можно логи хранить в соседней базе. Я не пользуюсь возможностью через одну базу делать коннекты в другую. Просто из приложения коннекчусь куда надо отдельным коннектом. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 08:25 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
fraksif (inserting) then begin va = 'I'; vid_src = new.id; end else if (updating ) then begin va = 'U'; vid_src = old.id; end else if (deleting ) then begin va = 'D'; vid_src = old.id; end else begin va = '?'; vid_src = NULL; end -- может красивей использовать when then? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 09:26 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11, Логирование - все просто! Лог ведут триггеры after insert or update od delete на каждой таблице, которой нужно протоколирование текст триггеров генерится процедурой, которая обсасывает системные таблицы RDB$RELATION_FIELDS, RDB$FIELDS примерно в таком виде Код: plsql 1. 2. 3. 4. 5.
Еще существует процедурка (допустим DBA$INIT_LOG(RELATION_NAME varcar(13) character set UNICODE_FSS), которая вызывает предыдущую получает у нее текст триггера и в execute statement компилирует его. Она де грантит этому триггеру все необходимые права. При необходимости внести изменения в структуру таблицы делаем Код: plsql 1. 2. 3. 4. 5.
все. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 11:49 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
sonkz, т.е. на каждый insert/update генерируется каждый раз и пересоздается триггер? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 12:43 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11sonkz, т.е. на каждый insert/update генерируется каждый раз и пересоздается триггер? Да, на каждую таблицу, которой нужно протоколирование создается(или пересоздается) один триггер. Создание (или изменение) триггера происходит при вызове процедуры DBA$INIT_LOG ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 13:00 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
о нет, думаю, это существенно заменит добавление/изменение записи ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 13:47 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11о нет, думаю, это существенно заменит добавление/изменение записи По сравнению с чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 13:59 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11о нет, думаю, это существенно заменит добавление/изменение записи Замедлит? О какой записи идет речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:23 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
Много лет пользуюсь протоколированием от IBExpert, слегка доработал под свою задачу (доп. ключевые поля+индексы). Зачем лисапед изобретаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:32 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
чччД, по сравнению с тем, когда не нужно перекомпилировать/пересоздавать триггер каждый раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:33 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
sonkz, как о какой? О записи информации в базу. Триггер срабатывает когда в базу записывается информация. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:34 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
мастер_ёда, за тем, что я не для себя хочу реализовать, а для простого юзверя, который, может, с вилами на ПК кидается. Ему под капот не нужно лезть, а достаточно выбрать условия и нажать "Отобразить аудит действий пользователей". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:36 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
01.12.2017 14:36, X11 пишет: > Ему под капот не нужно лезть, > а достаточно выбрать условия и нажать > "Отобразить аудит действий пользователей". и будет он сидеть и молча утирать скупую слезу. ибо хрен поймёт чо там к чему пришпилено... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:39 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11чччД, по сравнению с тем, когда не нужно перекомпилировать/пересоздавать триггер каждый раз. А "каждый раз" это когда? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:41 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
m7m, когда добавляется/меняется запись в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:54 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11m7m, когда добавляется/меняется запись в таблице.Пациент путает педали. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:55 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11m7m, когда добавляется/меняется запись в таблице. Или никто такое не утверждал, или я невнимательно читал ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 14:56 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
Логирование физических таблиц - это аудит низкого уровня, в котором не каждый ИТ-специалист разберётся, кроме того, что "вот этот тогда-то похоже что-то сделал". Потому что время, когда 1 таблица - "шапки", и ещё 1-2 - "Товары", "Платежи" для одного документа, уже давно прошли. Сейчас заполнишь одно поле в документе - и это вызывает изменения в 10-ке разных таблиц, часто неочевидных. Для отслеживания "когда, кто", по-моему, следует стремиться к прикладным объектам, и отслеживание это зачастую не на уровне СУБД, хотя часть (или всё) можно туда навесить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 15:08 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
X11m7m, когда добавляется/меняется запись в таблице. Триггер, изменяется ТОЛЬКО когда изменяется таблица (метаданные), а все остальное время он молча пишет все изменения в ДАННЫХ в таблицы логов. Можно, заставить его заглядывать в настроечные таблицы, чтоб посмотреть поставил ли там юверь галочку - протоколировать, или не поставил для конкретного события( insert, update, delete или update каких полей он хочет протоколировать) Только тогда нужно еще протоколировать настройки протоколирования. А потом настройки протоколирования настроек протоколирования, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 15:23 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
Тогда нужен триггер/событие, который будет определять, что структура целевой таблицы изменилась, например, добавилось поле или удалено поле. Чтобы сочинить новое тело триггера для логирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 15:27 |
|
Логирование изменений записи
|
|||
---|---|---|---|
#18+
мастер_ёдаМного лет пользуюсь протоколированием от IBExpert, слегка доработал под свою задачу (доп. ключевые поля+индексы). Зачем лисапед изобретаете? У меня все это работало еще до того, как IBExpert научился. Во какой я старый! http://www.sql.ru/forum/images/cry.gif ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 15:29 |
|
|
start [/forum/topic.php?fid=40&msg=39562587&tid=1561312]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 200ms |
0 / 0 |