Dmitry Yemanov пишет:

Vlad Khorsun wrote:

проверки делаются во время реальных действий, а не на всякий случай

Добавлю: под реальными действиями следует понимать изменение данных, а не оператор DELETE.


Немножко ОФФ, но вспомнил такую ситуацию.
а вот например в таком триггере (смысла нет, это я от балды написал)

create trigger tr for table t1
active after update
as
begin
 if current_user<>'SYSDBA' then exit;
 delete from table t2;
end

В случае если у пользователя нет прав на удаление из t2 и он попробует обновить t1 - выдается ошибка что нет прав на удаление из t2, хотя этот оператор и не выполняется фактически. И даже если там в каком то триггере который _может_быть_спровоцирован_ удалением из t2 на некоктором шане у пользователя не будет прав на еще какую то таблицу - тоже выдается ошибка... Нельзя ли тоже чтобы он "на всякий случай" не проверял права, а проверял только если идет попытка удаления?

С уважением,
Стариков Алексей

Ответить