【发布时间】:2013-05-26 17:27:59
【问题描述】:
我使用的是 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 调用?还是有其他方法可以防止用户 B 在触发器之外更新A.CUSTOMER?
【问题讨论】:
标签: oracle stored-procedures triggers database-permissions