FB 1.5.3 Linux/Classic

Понимаю, что ничего не понимаю...
И от долгого думания становится все хуже, и тем более прошу ткнуть меня в какой-нибудь документ, где про это уже написано.

На триггерах реализована некая бизнес-логика. До/после апдейтов выполняется (при соблюдении определенных условий) коррекция зависимых таблиц (UPDATE и всякие EXECUTE PROCEDURE).

Так вот, пользователь, которому назначена некая роль и который указал ее при подключении, натыкается на ограничение прав, если по цепочке действий, выполняемых триггерами, он не имеет права на UPDATE некой таблицы. НО (!) согласно входным параметрам этого SQL-запроса я вижу, что до UPDATE дело вообще-то и не дойдет, т.к. триггер начинается с IF и это условие НЕ ВЫПОЛНЯЕТСЯ, т.е. триггер-то фактически ничего не сделает. А ошибку про отсутствие прав почему-то получаю! Получается, что права проверяются не во время, а ДО выполнения запроса и бесприменительно к семантике тела триггеров?

--
Regards,
Ovchinnikov Vasily
ova at tkvc ru

Ответить