Я использую Oracle 11gR2, и у меня есть две схемы: A
и B
, каждая из которых имеет аналогичную таблицу CUSTOMER
.Разрешить обновление только другой схемы в триггере
Когда обновляется B.CUSTOMER
, я хочу, чтобы обновления были обновлены до A.CUSTOMER
. Схема A имеет полные привилегии для схемы B, но я хочу, чтобы схема B имела как можно меньше привилегий на схеме A.
я написал процедуру, описанную в схеме А, A.UPDATE_CUSTOMER
, которая принимает B.CUSTOMER%ROWTYPE
переменную и использует его для обновления A.CUSTOMER и предоставивший выполнить по процедуре Schema B.
я создал для каждой строки после запуска обновления на B.CUSTOMER
, который вызывает эту процедуру обновления и работает по желанию. Но я думаю, что пользователь B может явно вызвать процедуру за пределами триггера, и я не хочу этого допускать.
Есть ли способ предотвратить A.UPDATE_CUSTOMER
от вызова B вне спускового крючка? Или существует какой-то другой способ предотвратить изменение пользователем B A.CUSTOMER
за пределами триггера?