我正在使用 Oracle 11gR2,并且我有两个模式 -A
和B
,并且每个模式都有一个相似的CUSTOMER
表。
更新时B.CUSTOMER
,我希望相同的更新发生在A.CUSTOMER
. 架构 A 对架构 B 具有完全权限,但我希望架构 B 对架构 A 拥有尽可能少的权限。
我在模式 A 中编写了一个过程,A.UPDATE_CUSTOMER
它接受一个B.CUSTOMER%ROWTYPE
变量并使用它来更新 A.CUSTOMER,并授予对模式 B 的过程执行。
B.CUSTOMER
我在调用此更新过程的更新触发器后为每一行创建了一个,它可以按需要工作。但我认为用户 B 可以在触发器之外显式调用该过程,我不想允许这样做。
有没有办法防止A.UPDATE_CUSTOMER
在触发器之外被 B 调用?还是有其他方法可以防止用户 BA.CUSTOMER
在触发器之外进行更新?