|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Привет, нужно собирать инфу по изменению таблицы. И собрать максимальную информацию, кто изменил, какое приложение, какой ip и тп... Подскажите пожалуйста как эту информацию (кто изменил, какое приложение, какой ip и тп) добыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 13:12 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Ну и в принципе возможно ли это? В мс скл возможно, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 13:21 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
пока не нашел как это сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 13:40 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Только это нашел: When a PL/pgSQL function is called as a trigger, several special variables are created automatically in the top-level block. They are: NEW Data type RECORD; variable holding the new database row for INSERT/UPDATE operations in row-level triggers. This variable is NULL in statement-level triggers. OLD Data type RECORD; variable holding the old database row for UPDATE/DELETE operations in row-level triggers. This variable is NULL in statement-level triggers. TG_NAME Data type name; variable that contains the name of the trigger actually fired. TG_WHEN Data type text; a string of either BEFORE or AFTER depending on the trigger's definition. TG_LEVEL Data type text; a string of either ROW or STATEMENT depending on the trigger's definition. TG_OP Data type text; a string of INSERT, UPDATE, or DELETE telling for which operation the trigger was fired. TG_RELID Data type oid; the object ID of the table that caused the trigger invocation. TG_RELNAME Data type name; the name of the table that caused the trigger invocation. TG_NARGS Data type integer; the number of arguments given to the trigger procedure in the CREATE TRIGGER statement. TG_ARGV[] Data type array of text; the arguments from the CREATE TRIGGER statement. The index counts from 0. Invalid indices (less than 0 or greater than or equal to tg_nargs) result in a null value. Но это не то. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 13:56 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Неужели постгрес так не может делать? :( ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 14:38 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 14:46 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 16:43 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
LeXa NalBat, Скажите, в триггере SELECT inet_client_addr() должен вернуть адрес того, кто изменяет стороки? Просто у меня в пг-админе не пойму что он возвращает, не мой IP точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 16:44 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Ну и приложение очень хочется отловить триггером. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 16:45 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Что-то никак не найду как запросом получить название клиентского приложения Постгре 8 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 17:07 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
камаз5320, select current_setting('application_name'); Чтобы это работало, клиентское приложение при старте должно выставить: set application_name = 'имя приложения'; ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 17:10 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Павел Лузановкамаз5320, select current_setting('application_name'); Чтобы это работало, клиентское приложение при старте должно выставить: set application_name = 'имя приложения'; Спасибо! В 9.5 работает нормально. Однако в 8-й версии: Код: sql 1. 2. 3. 4. 5.
Как бы в 8-й версии отловить его?... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 17:14 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
камаз5320, Ну сделайте пользовательский параметр (должна быть точка в имени): set myapp.name = 'имя приложения'; select current_setting('myapp.name'); ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 17:20 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
камаз5320Павел Лузановкамаз5320, select current_setting('application_name'); Чтобы это работало, клиентское приложение при старте должно выставить: set application_name = 'имя приложения'; Спасибо! В 9.5 работает нормально. Однако в 8-й версии: Код: sql 1. 2. 3. 4. 5.
Как бы в 8-й версии отловить его?... 1)в 8 версии такого параметра нет 2)если приложение у вас не самописное то 99% что "application_name" оно не ставит (и без переписывания ставить не будет). (т.е. параметр на новых версиях то есть но если ПРИЛОЖЕНИЕ его не ставит - толку ноль). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 17:21 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
Maxim Bogukкамаз5320пропущено... Спасибо! В 9.5 работает нормально. Однако в 8-й версии: Код: sql 1. 2. 3. 4. 5.
Как бы в 8-й версии отловить его?... 1)в 8 версии такого параметра нет 2)если приложение у вас не самописное то 99% что "application_name" оно не ставит (и без переписывания ставить не будет). (т.е. параметр на новых версиях то есть но если ПРИЛОЖЕНИЕ его не ставит - толку ноль). Получается select current_setting('application_name'); Просто берет информацию из: SELECT * FROM pg_settings WHERE name='application_name' А на 8-ке в принципе нельзя имя приложения в триггер записать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2017, 17:23 |
|
Собрать максимально информацию в триггере.
|
|||
---|---|---|---|
#18+
камаз5320А на 8-ке в принципе нельзя имя приложения в триггер записать? Последняя 8рка (8.4) EOL 3 года назад!!!! ( July 2014) Если вам нечего делать - возьмите исходники и внесите туда поддержку application_name из новых версий. -- Maxim Boguk dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 10:21 |
|
|
start [/forum/topic.php?fid=53&msg=39463789&tid=1996479]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 142ms |
0 / 0 |