|
уровень вложенности
|
|||
---|---|---|---|
#18+
Коллеги, перешерстил все но не нашел ответа - данные в таблицу А вставляются из процедуры , триггер таблицы А вставляет данные в таблицу Б.Напрямую в таблицу Б данные вставлять нельзя. Как определить в триггере на Insert , что вызов идет именно из другого триггера , а не руками ? Есть какая то переменная ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 15:19 |
|
уровень вложенности
|
|||
---|---|---|---|
#18+
yurii_ch, посмотрите pg_trigger_depth() . Но сам не проверял. А вообще правами лучше разграничить. Отобрать права на запись таблички, а триггеры/процедуры делать security definer и давать grant кому нужно. Владельцу таблички придётся доверять, потому что владелец всё равно может дропнуть триггер, сделать что хочет и затем повесить его обратно. Ну аж суперюзер и вовсе может отрубить выполнение триггеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 15:30 |
|
уровень вложенности
|
|||
---|---|---|---|
#18+
просто я раньше с MSSql работал, там такая переменная была, она позволяла определить уровень. т.е. тригерр 1 вызывает триггер 2, а тот вызывает триггер 3, то уровень 3 соответственно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 15:34 |
|
уровень вложенности
|
|||
---|---|---|---|
#18+
yurii_ch, про глубину вам подсказали. но это неправильное решение. правильное тоже подсказывают -- сделать владельцем "супердба", и всем остальным запретить писать в таблицу. тело триггера присвоить тому же супердба и сделать "секьюрити дефайнер"-ным если хочется поизвращаться -- можно создать роль "реплика-дба" и все "вторичные" данные заливать как реплики (триггером с телом -- собственностью "реплик"--роли, енейбл он реплика ), навесив триггер полного запрета записи как "орижн", всем (но это эстетическое излишество, имхо. там ещё про константы пообчитать и про режимы триггеров) --ттогда при тупой попытке записи супер сначала обломается, потом увидит свои триггерочки и вспомнит, авось, зачем они там ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 16:54 |
|
|
start [/forum/search_topic.php?author=aefimovru&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 721ms |
total: | 879ms |
0 / 0 |