|
|
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
я в свое время нашел достаточно скудное описание того, как это надо делать, поэтому вот мой велосипед. может кому пригодится :) основная идея заключается в том, что работать оно будет по 3-м таблицам: таблица, в которой будем держать имена таблиц для аудирования. Код: plaintext 1. 2. 3. 4. 5. 6. 7. таблица, в которой будет держать имена полей для аудирования. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. и собсно таблица значений :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. и вот такой вот триггерок можно вешать сразу на все таблицы в базе. если логи по таблцие вести не надо, он их вести не будет. с другой стороны можно сделать админку, которой можно выставлять что надо вести в логах, а что нет. Код: plaintext 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. комментарии приветствуются :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 16:16 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
у меня есть даже замечание: Код: plaintext 1. 2. 3. должно быть Код: plaintext 1. 2. 3. 4. модераторы, поправьте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 16:19 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
я делал практически тоже самое, только чуть по другому. вместо общей audit_biu у меня были отдельные функции-тригеры для каждой наблюдаемой таблицы которые генерировались автоматически при помощи функции на plperl. вместо общей таблицы со значениями у меня были отдельные таблицы для каждой наблюдаемой, создавались по create table history.log_$table as select * from $table where false; + потом добавлялись служебные поля log_user_id log_transac_time и т.п. наблюдались все поля, но впринципе можно было бы сделать ещё один параметр для той функции на plperl со списком полей. так имхо получается быстрее, чем постоянно производить поиск списка полей в конфигурационных таблицах аудита. -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 19:18 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
а как потом админку добавить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2007, 20:49 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
А зачем все это делать на экзотическом PL/pgTCL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 00:11 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
1. в нем экзотики не больше, чем в любом другом языке. 2. питон надо собирать особым образом (с тредами), чтобы можно было привернуть к постгресу, что есть лишнее и не всегда возможное телодвижение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 07:07 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
Rastafarraа как потом админку добавить?например сделать табличку: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2007, 09:38 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
Rastafarraя в свое время нашел достаточно скудное описание того, как это надо делать, поэтому вот мой велосипед. может кому пригодится :) комментарии приветствуются :) А если ли что нибудь новое с учетом что версия PG уже 9,4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 09:47 |
|
||
|
аудит [TCL]
|
|||
|---|---|---|---|
|
#18+
max aka max, ну можно hstore (спасибо олегу с теодором) приспособить -- чтобы всего вот этого "про конструкции" не хранить. и обойтись одной таблицей с hkeys -- hstore ,hbody--hstore но там тоже плясать приходится при восстановлении типов-по-имени из pg_attribute. hint: dblink содержит хорошую (быструю с-ную) ф-ю получения массива ключевых полей по имени таблицы. у меня она была быстрее запроса к pg_index[indisprimary] JOIN pg_attributes [ON indkey<->attnum] -- на случай разных ключей, а не токмо суррогатов (хотя лучше унифицировать и не связываться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 10:29 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39013083&tid=1997681]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 474ms |

| 0 / 0 |
