Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
Есть необходимость написать триггер на одну таблицу, чтобы он все изменения (insert,update) в этой таблице сохранял в другой. Это несложно. Но подскажите, как написать триггер так, чтобы он еще работал с извлечением Application Name, через которое сделалось это изменение, и еще желательно UserID и AuthID ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 09:54 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
CURRENT CLIENT_APPLNAME, CURRENT CLIENT_USERID и т.п., об этом речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 11:14 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
да именно, т.е. чтобы триггер инстертил все изменения в нужной таблице в другую таблицу + еще инфу через какое приложение это было сделано (ApplicationName) + желательно с какой машины (MachineName) + кто сделал (userID или UserName). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:06 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
наверно проще делать изменения в таблице не напрямую, а через хп, и в этих хп отслеживать что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:22 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
try funtion APPLICATION_ID() and query describe select * from table(snapshot_appl_info('',-1)) as t where t.appl_id=application_id() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:30 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
дб2юзернаверно проще делать изменения в таблице не напрямую, а через хп, и в этих хп отслеживать что надо. не-знаю не знаю.... Дергать всякий раз хп или триггер чтобы при каждом запросе получать значения, которые для данной сессии не меняются... А смысл? может лучше один раз после коннекта их получить и везде подставлять? я б так делал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:33 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
gardenmanможет лучше один раз после коннекта их получить и везде подставлять? на стороне клиента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:46 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:49 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
обычно пользователям не дают прямой доступ к таблицам, хранящим подобную "служебную" информацию... или пошутил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:52 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
Я обычно использую статический SQL. Поэтому когда юзер подцеится к базе данных, то он вообще ничего не увидит. А чтобы юзер мог юзать SNAPSHOT* табличные функции у него должны быть привилегии на мониторинг. Короче это ваша проблема - как строить приложение. Заюзать приведенный мной селект (а другого разумного способа получить нужную вам инфу нет) один раз через ХП в начале сеанса, либо дать права на мониторинг всем (кстати есть переменная окружения которая позволяет это делать, смотрите db2set -lr) и дергать сервер все время на каждый божий инсерт/update чтобы получить инфу которая не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 13:02 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
если не трудно, где и когда по этой схеме будет проводиться запись в служебные таблицы? недопонимаю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 13:27 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
по какой "по этой"? тоже недопонимаю... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 13:31 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
по описываемой вами. я речь вел о том, чтобы операции изменения "рабочих" таблиц производить через хп и этих хп вести необходимый учет действий пользователя. как пользователь будет идентифицирован в этих хп - второй вопрос. можно и через параметр - один раз сформировать(получить) на клиенте учетные данные и передавать в хп. Как идентифицировать клиента в триггере - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 13:55 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
1) values current user 2) select current user from sysibm.sysdummy1 3) Читайте Cookbook. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 14:08 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
дб2юзерCURRENT CLIENT_APPLNAME, CURRENT CLIENT_USERID и т.п., об этом речь? если этой информации достаточно, тогда и триггера достаточно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 14:30 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
т.е. user и в триггере пройдет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 14:38 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
а для CURRENT USER : For static SQL statements, the value represents the authorization ID that is used when the package is bound. или я опять недопонимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 14:41 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
Специально для Вас! Код: 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. Выполняю из под хозяина экземпляра: UserID DB2I81 выполняю из под root: UserID ROOT Т.е. юзайте переменную USER хоть в статическом, хоть в динамическом SQL - она всегда содержит текущий логин кто это всё делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 15:15 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
с user_id через user понятно. CURRENT CLIENT_... регистры будут корректно работать в триггере? (я пока не могу проверить, предыд. задача была на 7, сейчас - на оракле) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 15:20 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
Какой однако лентяй.... боже мой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 15:27 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
объясните убогому, пройдет ли вариант: CREATE TRIGGER DB2ADMIN.TGR_MAIN AFTER INSERT ON DB2ADMIN.TBL_MAIN FOR EACH ROW MODE DB2SQL insert into db2admin.tbl_log values (CURRENT CLIENT_APPLNAME,CURRENT CLIENT_WRKSTNNAME, CURRENT CLIENT_ACCTNG); c user-ом не 7 делал, остального там не было. ч/з админ API все получать можно было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 15:34 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.udb.doc/admin/r0008404.htm и поваренная книга, если еще не сказали. Ааа, Николай уже сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 15:40 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
ggvhttp://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.udb.doc/admin/r0008404.htm и поваренная книга, если еще не сказали. Ааа, Николай уже сказал. с publib.boulder.ibm.com я знаком (оттуда регистры и взял). у меня со сложносочененными предложениями на английском не очень... ввобщем не поленился, поставил 8. CREATE TABLE DB2ADMIN.TBL_LOG (FAPPL VARCHAR(255), FWRKST VARCHAR(255), FACCT VARCHAR(255) ) CREATE TABLE DB2ADMIN.TBL_MAIN (FNUM INTEGER, FTEXT VARCHAR(50) ) CREATE TRIGGER DB2ADMIN.TGR_MAIN AFTER INSERT ON DB2ADMIN.TBL_MAIN FOR EACH ROW MODE DB2SQL insert into db2admin.tbl_log values (CLIENT APPLNAME, CLIENT WRKSTNNAME, CLIENT ACCTNG); insert into DB2ADMIN.TBL_MAIN values (1, 'text1'); insert into DB2ADMIN.TBL_MAIN values (2, 'text2'); Select * from DB2ADMIN.TBL_MAIN; Select * from DB2ADMIN.TBL_LOG; в TBL_LOG пустые строки (или я совсем тупой стал???) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 16:15 |
|
||
|
Триггер на изменение таблицы, с извлечением ApplicationName...
|
|||
|---|---|---|---|
|
#18+
Поищи функцию sqleseti ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 16:17 |
|
||
|
|

start [/forum/topic.php?fid=43&fpage=136&tid=1605507]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 382ms |

| 0 / 0 |
